トップページ⇒tech
1001コメント363KB

Androidプログラミング質問スレ Part23

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001デフォルトの名無しさん2012/06/19(火) 19:57:12.12
このスレではAndroidSDK・NDKやAndroidマーケットに関する質問を扱ってます。

※プログラミング自体が初めて!なあなたには↓↓↓こちらへ
スレ立てるまでもない質問はここで 118匹目
http://toro.2ch.net/test/read.cgi/tech/1331904826/
Eclipse統合M32【Java/C++/Ruby/Python/Perl】
http://toro.2ch.net/test/read.cgi/tech/1320318310/
★★Java質問・相談スレッド153★★
http://toro.2ch.net/test/read.cgi/tech/1334438859/

****関連リンク****
■ Android developers http://developer.android.com/
■ ソフトウェア技術ドキュメントを勝手に翻訳 http://www.techdoctranslator.com/

****前スレ****
Androidプログラミング質問スレ Part22
http://toro.2ch.net/test/read.cgi/tech/1337170429/
0877デフォルトの名無しさん2012/07/17(火) 23:39:20.73
webView.loadUrl("web/hogera.html"); でできない?
0878デフォルトの名無しさん2012/07/17(火) 23:47:20.40
>>877

それはできない。
0879デフォルトの名無しさん2012/07/17(火) 23:48:03.39
LVLの導入について質問です

http://tech.topgate.co.jp/android/android-lvl-introduction
このサイトを参考に導入しようとしたところSDKManagerにMarket Licensing packageはなく代わりにGoogle Play Licensing Libraryがありました
これで合っているのでしょうか?
もし合っているならこれはAndroidのディレクトリのどこにあるのでしょうか?
0880デフォルトの名無しさん2012/07/17(火) 23:52:53.87
>>876
ここは?
つttp://fron.sitemix.jp/blog/2012/02/23/30/
0881デフォルトの名無しさん2012/07/17(火) 23:54:08.47
>>879
extras/google/market_licensing/library
0882デフォルトの名無しさん2012/07/18(水) 01:02:37.59
>>881
ありがとうございます
早速入れてみます
0883デフォルトの名無しさん2012/07/18(水) 01:17:25.47
>>876
file:///data/data/.......で見れない?
0884デフォルトの名無しさん2012/07/18(水) 08:11:16.75
初心者ですみません

R.layout.main と opengl の画面を両方同時に出したいのですが、
どすればできますでしょうか

ご教授いただければ幸いです
0885デフォルトの名無しさん2012/07/18(水) 09:39:03.78
SC-01DでGoogleのADKのDemoKit動かせた人いませぬか?
どうも修正するべきところ修正してもうまくいかない・・・
0886デフォルトの名無しさん2012/07/18(水) 10:10:23.70
>>884
res/layout/main.xml の中に <android.opengl.GLSurfaceView>を書く
0887デフォルトの名無しさん2012/07/18(水) 11:55:28.05
>>883
ありがとう、見れました
0888デフォルトの名無しさん2012/07/18(水) 13:46:16.93
LVLのテストライセンスの設定って反映まで時間がかかったりしますか?
昨日設定を変えたのに反映されなくてさっきもう一度やってみたら反映されてました
0889デフォルトの名無しさん2012/07/18(水) 14:04:40.59
解答お願いいたします。

現在、簡単な音楽プレイヤーを作成しているのですが、その際に使用するmediaplayerがアプリを再起動したときに毎回別のそれを参照してしまいます。

staticなど試したのですが、うまくいきませんでした。

常にひとつのmediaplayerを参照する方法はないのでしょうか?

ご教授いただけたら幸いです。
0890デフォルトの名無しさん2012/07/18(水) 15:46:41.63
表示方法を動的に変更するため、ArrayAdapterを継承したカスタムAdapterの
getView()でプリファレンスを取得して切り替えています。
これだとgetView()の度に処理が走るので効率悪いと思いますが、
表示方法を切り替える度にAdapterのインスタンスを生成し直して
コンストラクタでプリファレンスを取得した方がいいのでしょうか?
0891デフォルトの名無しさん2012/07/18(水) 16:05:25.56
yes
0892デフォルトの名無しさん2012/07/18(水) 16:08:15.98
>>891
了解です。ありがとうございます。
0893デフォルトの名無しさん2012/07/18(水) 16:37:16.60
>>886
できました
ありがとうございます
0894デフォルトの名無しさん2012/07/18(水) 17:14:09.97
>>889
よくわかんないけど,毎回同じmediaplayerじゃないと何が困るの?
0895デフォルトの名無しさん2012/07/18(水) 17:49:48.44
>>889
最初にisPlaying()で再生中かどうか調べて再生中ならstop();release();する処理書けばいいんじゃない?
08968732012/07/18(水) 20:10:12.64
解決しました。ありがとうございます。
0897デフォルトの名無しさん2012/07/18(水) 21:50:01.65
ViewPagerでImageViewsスクロール実装しましたが、これに
ピンチイン・アウトっていけます?
0898デフォルトの名無しさん2012/07/18(水) 23:06:02.31

自作アプリからskypeを起動して発信させようと以下のコードを書きましたが
うまくいかない部分があるんで知恵を貸してください。

Intent SkypeIntent = new Intent("android.intent.action.VIEW");
SkypeIntent.setData(Uri.parse("skype:" + user_name));
startActivity(SkypeIntent);

最初の1回はうまく動作します。

�@skypeが起動する
�A"通話を開始します [skypeユーザ名]さんと通話しますか? "のダイアログが表示される。
�Bはいをクリックすると発信、通話開始
�C通話を終了すると自作アプリのアクティビティに戻る


ところが2回目は
�@skypeが起動する
�A"通話を開始します [skypeユーザ名]さんと通話しますか? "のダイアログが一瞬表示されて消える
�Bskypeのホーム画面が表示される
�C変化せずそのまま

という動作をして、発信ができません。
1回目の�Aのダイアログが出た時点で、"今後表示しない"のチェックを入れれば回避は出来るんですが、
もっと良い方法をご存知の方が居れば教えてもらえませんか?
よろしくです。

0899デフォルトの名無しさん2012/07/19(木) 04:46:23.82
くだらない事なんだけど、プリファレンスの値を取得するメソッドの
第2引数のデフォルト値はどこで管理するのがいいのだろう?
0900デフォルトの名無しさん2012/07/19(木) 09:29:57.39
>>899
キッチリやるなら定数は全てリソースで管理する何だろうけど、
手間とメンテナンス性のバランスだね。
オレの場合は、そのクラスにstatic finalで定義するな。
0901デフォルトの名無しさん2012/07/19(木) 12:45:36.10
>>899
俺はアプリ起動時に未設定の項目全部初期値で埋めて保存することにした
常に値があるから第2引数無意味になったので 0 とか false とか適当
0902デフォルトの名無しさん2012/07/19(木) 15:27:51.72
>>900
1つのファイル内ならstatid finalで済むとして
例えばarrays.xmlに定義する配列の1要素が
デフォルト値だったらstrings.xmlに定義するのが
いいのかな
0903デフォルトの名無しさん2012/07/19(木) 15:46:54.51
>>901
設定項目少なければそれもありな気がする
0904デフォルトの名無しさん2012/07/19(木) 18:23:28.23
static classで管理するのもありかと
0905デフォルトの名無しさん2012/07/19(木) 19:00:47.29
SDKをr20にしてからコンテンツローダー?の読み込みで起動と終了がすごい遅くなったのですがこれは仕様ですか?
0906デフォルトの名無しさん2012/07/19(木) 19:01:42.05
うむ
0907デフォルトの名無しさん2012/07/19(木) 19:08:37.99
どうにか起動と終了早くできないですかね
0908デフォルトの名無しさん2012/07/19(木) 22:00:10.25
あかん、何度やってもglTexSubImage2d()で設定した画像がテクスチャに反映されない…
NDKかつOpenGLの話題って、ここで質問しても良いんかね?
OpenGLスレとか行くべき?
0909デフォルトの名無しさん2012/07/20(金) 01:04:12.26
ここで聞いても解決しなさそうだけどなw
0910デフォルトの名無しさん2012/07/20(金) 13:40:05.56
エラー: No resource identifier found for attribute 'layout_heigth' in package 'android'
ってでるのですがどういう意味でしょうか?
よろしくお願いします
0911デフォルトの名無しさん2012/07/20(金) 13:53:26.77
layout_heigth
layout_height
0912デフォルトの名無しさん2012/07/20(金) 13:56:10.36
>>910
まんまの意味だね
落ち着いて見れば分かると思うけどスペルミスしたから出てる
0913デフォルトの名無しさん2012/07/20(金) 14:30:49.24
思うんだが、エラー文なんでしょうと言われてもそのまんまの意味だよなぁ・・・

>>910
「layout_heigth」のスペルってそれでいいのか?
0914デフォルトの名無しさん2012/07/20(金) 14:35:32.39
きっとまだ英語を習ってない小学生なんだよ
0915デフォルトの名無しさん2012/07/20(金) 15:45:41.71
結局クラック対策にNHKの知識もいるんだから
なんか二度手間だよなあAndroidって
0916デフォルトの名無しさん2012/07/20(金) 21:56:28.43
ホームアプリ上でホームボタンをダブルタップした時は
自分のアプリを起動、シングルタップの時はホームアプリの
標準動作(ホームポジションに移動)をさせたいのですが、
どうしてもシングルタップ時の動作ができません。
自分のアプリのActivityをfinish()した後で上記の標準動作を
実行させる事は可能でしょうか?
0917デフォルトの名無しさん2012/07/20(金) 23:17:12.38
Applicationクラスをextendsしたクラスで
startActivityを実行すればできそうな気がしてきました。
0918デフォルトの名無しさん2012/07/20(金) 23:53:15.22
どういう状況で何がしたいかさっぱりわからんがまあ頑張れ
09199082012/07/21(土) 01:12:19.93
一応自己解決したので、誰の参考にもならんだろうが書いておく。
glほげほげ は、OpenGL用のスレッド以外で呼んでも動かないよ!
ていう話だった。
ネットの至る所に転がっていたぜ…

ネイティブ 側でGLSurfaceViewの持つスレッドなんて取得できるんだろうか。
結局殆どの処理がonDrawFrameに集中してしまう。
0920デフォルトの名無しさん2012/07/21(土) 02:17:44.67
初歩的な質問ですみません
自前で用意したPDFファイルを読ませる方法はどんな方法がありますか?
0921デフォルトの名無しさん2012/07/21(土) 02:18:31.84
読み込んで画面に表示する方法の間違いです
0922デフォルトの名無しさん2012/07/21(土) 03:29:10.72
>>920
まずpdfの仕様書を読みます。
0923デフォルトの名無しさん2012/07/21(土) 03:34:30.81
>>920
http://sourceforge.net/projects/andpdf/
0924デフォルトの名無しさん2012/07/21(土) 09:44:29.35
new File("directory").mkdir()
でfalseが返ってきます。
何故でしょうか?
0925デフォルトの名無しさん2012/07/21(土) 09:58:26.65
パスの指定を間違っていました。
0926デフォルトの名無しさん2012/07/21(土) 10:46:32.51
うむ
0927デフォルトの名無しさん2012/07/21(土) 11:14:22.43
今開かれているアプリを取得するにはどうしたら良いでしょうか?

Android 開いてるアプリ取得などでぐぐっても見つかりません
0928デフォルトの名無しさん2012/07/21(土) 11:18:37.49
ActivityManager#getRunningTasks とか
0929デフォルトの名無しさん2012/07/21(土) 14:18:19.87
データを予めSQLiteで用意して使おうかと思ったのですがDBのファイルはどうやってアプリに同包するんでしょうか?
というかデータはどのように用意しておくのが普通なんでしょうか?
データはゲームキャラのパラメータです
0930デフォルトの名無しさん2012/07/21(土) 14:58:19.05
>>929
「android sqlite database」で検索
0931デフォルトの名無しさん2012/07/21(土) 15:45:38.16
>>929
容量と速度とコストの関係で変わる。
0932デフォルトの名無しさん2012/07/21(土) 16:40:48.52
流れぶった切ってすみません、質問があります。
0933デフォルトの名無しさん2012/07/21(土) 16:47:56.53
お断りします
0934デフォルトの名無しさん2012/07/21(土) 16:54:16.57
ホーム画面にシェルスクリプトを実行するショートカットを置きたいのだが、
簡単なものって作れないかな
ScriptManagerで似たようなことはできるんだけど、大袈裟すぎるというか
0935デフォルトの名無しさん2012/07/21(土) 18:03:53.68
Preferenceの設定画面でリストアイテムの右側に▽マークが
付いているのですが、これを見えなくするにはどうすればいいでしょうか?
そのようなDialogPreferenceやListPreference等もマークが付いてしまいます…。
0936デフォルトの名無しさん2012/07/21(土) 18:07:18.54
アホだった…まさにPreferenceを継承すればよかったんですね。
0937デフォルトの名無しさん2012/07/21(土) 21:32:49.20
>>929
assetsフォルダにDBファイル入れておいてコピーするか、
csvファイルとか入れておいてアプリ初期化時にインサートするか。
「android sqlite assets」でぐぐる。
0938デフォルトの名無しさん2012/07/21(土) 23:47:45.60
質問です。

activityクラスは一つのパッケージしか作れないのでしょうか?

eclipseで最初に作ったパッケージとは別に
新しくパッケージを作ってそこにactivityクラスを作ったんですが
layoutファイルを読み込んでくれません。
genフォルダのR.javaは最初に作ったパッケージ名のところに入っていて
試しにgenフォルダの中に新しく作ったパッケージ名と同じパッケージを作ってそこに
R.javaとBuildConfig.javaを入れたんですが
やはりlayoutファイルを読み込めませんでした。

よろしくお願いします。
0939デフォルトの名無しさん2012/07/21(土) 23:54:07.68
作れるよ
09408382012/07/22(日) 01:14:23.47
>>939
setContentView(パッケージ名.R.--)
で出来ましたね。。
0941デフォルトの名無しさん2012/07/22(日) 01:58:22.91
広告admob付けて試しにタッチしてみると
アプリが強制終了してしまうんですが
どういうことが原因と考えられるでしょうか?
対策はどういうのがありますか?
0942デフォルトの名無しさん2012/07/22(日) 05:31:05.66
>>941
原因は例外処理を行っていないことが考えられる。
対策は広告なんて出す前に基礎から勉強した方がいい。
0943デフォルトの名無しさん2012/07/22(日) 05:50:17.43
原因は例外が発生していることが考えられる。
0944デフォルトの名無しさん2012/07/22(日) 09:05:06.62
http://www.hp3200.com/android-app-development/
このサイトを参考に環境作ってたのですが
プラグインのインストールが、「環境依存違反」と出て完了できません
http://www.hp3200.com/android-app-development/5-plugin.html

ロケーションhttp://dl-ssl.google.com/android/eclipse/
からDeveloper Toolsがインストールできない状況です。
一端やめて他のサイトを参考にしようかとも思ったのですが
こういう状況はなにが原因なのでしょうか?
0945デフォルトの名無しさん2012/07/22(日) 10:00:33.67
eclipseのバージョン何つかってんだよ書けやボケ
そこのサイト見ると3.4インストールとか書いてあるが、
古いのだと動かない可能性があるらしい
そのくらい自分で調べろや、そんなのじゃプログラミングもできんだろ
0946デフォルトの名無しさん2012/07/22(日) 11:41:18.55
>>944
日付の書いてないページはどれだけ古いか分からないから信用するな
0947デフォルトの名無しさん2012/07/22(日) 15:55:51.35
>>945-946
まったくおっしゃる通りでした。
ITproの7月に書かれた導入ページがあったので
そちらからやり直し無事完了しました。
ありがとうございます。
0948デフォルトの名無しさん2012/07/22(日) 16:13:29.59
オーバーレイと裏にいるアプリ(壁紙でもなんでも)の両方ともイベント受け取れる方法ってないですか?

たとえばTYPE_SYSTEM_ALERTだとオーバーレイしか受け取れず
TYPE_SYSTEM_OVERLAYだとそもそもオーバーレイがイベント受け取れない

誰か教えてください
0949デフォルトの名無しさん2012/07/22(日) 16:38:18.85
onUserLeaveHint()はHOMEボタン押した時と広告を踏んだ時にも呼ばれるようですが
これらを区別するにはどうすればいいですか?
広告踏んだ時呼ばれるon〜という類なのはあるんでしょうか?
0950デフォルトの名無しさん2012/07/22(日) 16:42:51.64
onPresentScreen()にブレークポイントおいても呼ばれませんでした (先にonUserLeaveHint()に行くせい?)
0951デフォルトの名無しさん2012/07/22(日) 17:02:30.01
広告の親ビューでタッチ監視しとけばぁ
0952デフォルトの名無しさん2012/07/22(日) 17:29:04.14
ハンドラーでonUserLeaveHint()の中身を時間差でonPresentScreen()の後ろに回すことによって解決できました。
0953デフォルトの名無しさん2012/07/22(日) 18:10:52.77
ActionBarSherlockと一緒に使える、オヌヌメのUIフレームワークを教えてください。
ターゲットは、SDK10〜15で使えるとうれしい。
使う使わないはともかく、どんなのがあるのか知りたい。
0954デフォルトの名無しさん2012/07/22(日) 19:12:45.36
>>952
それじゃ機種によっては、動かないだろ。
0955デフォルトの名無しさん2012/07/23(月) 18:18:02.13
4.0以降一部の機能をSwitchを使ったものに切り替えているのですが、
android.widget.Switchをimportした時点で、4.0以前の端末だと以下のエラーがlogcatで表示されます。
Could not find class 'android.widget.Switch', referenced from method 〜(省略)

実際に動かしているときは4.0以前、以降で処理を切り替えているためエラー落ちしたりすることはないのものの、
気持ち悪いのでエラー自体を出ないようにしたいのですが何か方法はないでしょうか。

クラス自体を4.0以前、以降で2種類作る。という方法はありますが
無駄にクラスが増えてしまいますし、機能は同じなので極力一つのクラスで済ませたいです。
0956デフォルトの名無しさん2012/07/23(月) 20:37:57.19
AndroidManifest.xmlの<activity>にandroid:label="@string/xxx"て名前を付けると
ホームアプリとか共有で、android:labelの名前が出てきますが、
ここを動的に変更できるのでしょうか?
0957デフォルトの名無しさん2012/07/23(月) 20:55:56.26
できません
名前のパターンが有限個なら全種類書いておいて PackageManager#setComponentEnabledSetting で有効無効切り替えるとか
それくらい
0958デフォルトの名無しさん2012/07/23(月) 21:02:45.73
apk 的に別のアプリケーション Hoge, Fuga があります。

1. Hoge 内の Activity から明示的 Intent で Fuga の Activity を呼び出し
2. Hoge の処理に戻って処理をさせたい(Fuga は自殺させたい)

のですが、方法はあるでしょうか?
Fuga で finish すると元の処理も死んでしまいます…よね。Hoge, Fuga とも触れます。
0959デフォルトの名無しさん2012/07/23(月) 21:15:51.59
>958

startActivityForResultして、setResultして、finishじゃだめなn

別apkだと駄目なん・。

そうけ。
0960デフォルトの名無しさん2012/07/23(月) 21:24:13.63
>957
そこをなんとか。
0961デフォルトの名無しさん2012/07/23(月) 21:31:46.37
学ぶ力には三つの条件があります。

第一は自分自身に対する不全感。
自分は非力で、無知で、まだまだ多くのものが欠けている。
だからこの欠如を埋めなくてはならない、という飢餓感を持つこと。

第二は、その欠如を埋めてくれる「メンター(先達)」を探し当てられる能力です。
メンターは先生でもお母さんでも、ネットの中の無名の人でもいい。
生涯にわたる師ではなく、ただある場所から別の場所に案内してくれるだけの
「渡し守」のような人でもいいのです。
自分を一歩先に連れて行ってくれる人は全て大切なメンターです。

第三が、素直な気持ち。
メンターを「教える気にさせる」力です。オープンマインドと言ってもいいし、
もっと平たく「愛嬌(あいきょう)」と言ってもいい。

「学ぶ姿勢」のある人は、何よりも素直です。
つまらない先入観を持たないから、生半可なリアリズムで好奇心を閉ざさない。
素直な人に聞かれると、こちらもつい真剣になる。知っている限りのことを、
知らないことまでも、教えてあげたいという気分になる。そういうものです。

以上、この三つの条件をまとめると、

「学びたいことがあります。教えてください。お願いします」

という文になります。これが「マジックワード」です。
これをさらっと口に出せる人はどこまでも成長することができる。
この言葉を惜しむ人は学ぶことができないのです。
学ぶ力には年齢も社会的地位も関係がありません。
>>959さんも、早く学ぶ力を身に付けてください。
0962デフォルトの名無しさん2012/07/23(月) 21:42:26.73
>>961

>>958 のことに関して
>>959 は興味はありません。

以上。
0963デフォルトの名無しさん2012/07/23(月) 21:50:28.14
>>958
>>Fuga で finish すると元の処理も死んでしまいます…よね

そんなわけ無いと思う。
0964デフォルトの名無しさん2012/07/23(月) 21:53:09.02
>>962
>>958ですが>>961は安価違いな気がします…私>>958か>>960さん宛てのような

で、>>959 さま >>963 さま、どうも私の>>958がFugaでActivityを複数経由して
最後のActivityでだけfinishしているのがおかしな動きをしていたようで、
あまりいい手段でないと思いますが、すべてnoHistoryかつfinishを呼び出すことで
今のところ希望した動きになりました。ありがとうございます。
0965デフォルトの名無しさん2012/07/23(月) 21:59:59.87
>>961
そんなこと広めても、やってる振りする。調子のいい。偽善者ばかりふえるので


0966デフォルトの名無しさん2012/07/23(月) 22:18:30.29
>>961
AndroidManifest.xmlの<activity>のandroid:label="@string/xxx"
を書換をしてみてください。
そりゃ、NET権限削除する人いるぐらいだから出来るんだろうけどさ。


0967デフォルトの名無しさん2012/07/23(月) 22:22:32.91
>>955
今のクラスからSwitchを消して、そのクラスを継承したクラスにSwitch入れればいいんじゃないの。
>無駄にクラスが増えてしまいますし、機能は同じなので極力一つのクラスで済ませたいです。
違うのだから無駄ではない。
使う側からは同じクラスに見えるし、Switch以外はsuperの方でメンテされるのだから何が問題になるかわからない。
単にオブジェクト指向設計を理解してないだけだと思う。
0968デフォルトの名無しさん2012/07/23(月) 22:30:34.46
>>955
消すだけならClass.forNameとかMethod.invokeとかメタプログラミングすれば消せそう。
そんなプログラムは読みたくないが。
0969デフォルトの名無しさん2012/07/23(月) 22:51:20.82
エラーの原因がわからないので教えてください
PackageManager pm = getPackageManager();
ImageView im = (ImageView) findViewById(R.drawable.ic_launcher);
Drawable drawable = null;
try {
drawable = pm.getApplicationIcon(access_text);
} catch (NameNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if(drawable != null){
im.setImageDrawable(drawable);//☆
}
上記のコードだと☆のところでぬるぽが呼ばれます
nullの確認をしているのになぜ呼ばれるのでしょうか?
0970デフォルトの名無しさん2012/07/23(月) 22:57:04.58
ImageView im = (ImageView) findViewById(R.drawable.ic_launcher)

R.drawable.ic_launcher
0971デフォルトの名無しさん2012/07/23(月) 22:58:17.99
>>969
なぜって、別のがnullなんじゃ
0972デフォルトの名無しさん2012/07/23(月) 22:58:36.88
ガッ
0973デフォルトの名無しさん2012/07/23(月) 23:03:01.17
>>961

お前こそ学べ。

0974デフォルトの名無しさん2012/07/23(月) 23:17:31.32
>>970
よく考えたらおかしいですね
0975デフォルトの名無しさん2012/07/23(月) 23:18:02.80
>>974は>>969です
0976デフォルトの名無しさん2012/07/23(月) 23:36:39.52
>>969
layout中からR.drawable.ic_launcher取ろうとするって喃喃

リソースからdrawableとろうとするのはわかるが
レス数が950を超えています。1000を超えると書き込みができなくなります。