1read 100read
Androidプログラミング質問スレ Part37 (214) TOP カテ一覧 スレ一覧 2ch元 削除依頼
MVVMについて語ろう (678)
C/C++の宿題片付けます 166代目 (138)
Excel VBA 質問スレ Part32 (377)
【漏れは】猫でもわかる質問スレ【猫以下です】 (496)
VBで作られた有名なアプリって何? (168)
Windowsストアアプリ開発について語れ (114)

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


1 :2013/10/22 〜 最終レス :2013/10/28
このスレではAndroidSDK・NDKやAndroidマーケットに関する質問を扱ってます。
※プログラミング自体が初めて!なあなたには↓↓↓こちらへ
スレ立てるまでもない質問はここで 126匹目
http://toro.2ch.net/test/read.cgi/tech/1363522503/
Eclipse統合M34【Java/C++/Ruby/Python/Scala】
http://toro.2ch.net/test/read.cgi/tech/1361510049/
★★Java質問懽\363蜻樺kスレッド161★★
http://toro.2ch.net/test/read.cgi/tech/1364006637/
****オススメ関連リンク****
■ TechBooster http://techbooster.org/category/android/tableofcontents/
■ Androidメモ http://www.saturn.dti.ne.jp/npaka/android/index.html
■ 逆引きAndroid入門 http://www.adakoda.com/android/
■ Androidプログラマへの道 http://wiki.livedoor.jp/moonlight_aska/
■ Android Wiki* http://wikiwiki.jp/android/
****公式リファレンス****
■ Android developers http://developer.android.com/intl/ja/reference/android/a\
\
pp/Activity.html
■ ソフトウェア技術ドキュメントを勝手に翻訳 http://www.techdoctranslator.com/
■ 日本Androidの会 https://groups.google.com/forum/?fromgroups=#!forum/android-\
\
group-japan
■ StackOverFlow http://stackoverflow.com/questions/tagged/android
****前スレ****
Androidプログラミング質問スレ Part36
http://toro.2ch.net/test/read.cgi/tech/1378990519/

2 :
スレたて乙。
立てられなかったので天プレの文字化けや古くなったスレの修正も出来なかった…

3 :
やべ適当にコピペしたから文字化けきづかんかった

4 :
AMDだからHAXMも使えないしなぁ…と思ってたが、今更AndroVM知った。
これテンプレ入りしてもいいんじゃねぇの?

5 :
HTML5/WebアプリってVBアプリの工数10倍かかるのにの人月1/2だよね。見積書いてる奴バカなの?
http://hayabusa3.2ch.net/test/read.cgi/news/1382432343/10

6 :
Bluetoothのバーコードリーダーを繋いだら、
実装を変えなくてもEditTextに簡単に入力されて安心した。
が、認識と同時にソフトウェアキーボードが隠れてしまって、
使えなくなることが判明した。
InputMethodManagerのForceも無視。
Bluetoothを解除するとキーボードが復活する。
リーダーもキーボードも使いたいんだが、
何のイベントを邪魔したらキーボードを救えるでしょうか?

7 :
android2.2以降で、ナビゲーションバーを除いた 今の向きの 横幅をdpで取得する方法を教えて下さい。

8 :
>>7
http://libro.tuyano.com/index3?id=190001&page=6

9 :
>>7
>>8 に補足
http://techbooster.org/android/hacks/16066/

10 :
DisplayMetricsで取得できるdpi値は
海外の極一部の端末(GalaxyAceとか?)で正確な値を返していない気がする
Nexus7で取得した値を使って画面に図形表示して定規で測ってみると微妙に小さい。

11 :
リストビュー内に配置しているチェックボックスをボタンクリックでvisible、invisible切り替えたいのですが、どのような方法を取ればいいでしょうか。
例えば、電話帳のリストが出ていて、通常はクリックで電話、メニューなどでメール送信モードに切り替えると複数送信の為にチェックボックスを表示させたいのですが。

12 :
自分は、NEXUS7しか実機持って無いので
エミュレータでスマホのテスト
してるんですがボタンのテキストを変更しても
変更されないんですが、エミュレータの設定が悪いんでしょうか
それともコードが悪いんでしょうか
どなたか教えて下さい。

13 :
>>12
ずいぶん前だけど、リソースの変更を検知してくれないことがあって、その時はクリーンしてから再ビルドで解決した
それでもダメなら、アプリをアンインストールしてみて

14 :
>>12
>>NEXUS7
で見れば?

15 :
>>11
AlertDialogの亜種でチェックボックス付きリストを表示するダイアログがある
AlertDialog.Builder.setMultiChoiceItems みたいな感じだったと思う
またはListViewの行レイアウトにチェックボックスを配置する
ListViewに設定するArrayAdapterのgetViewで
((LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(レイアウトリソースID, null);
するレイアウトに配置する。
その際チェックボックスに対しsetFocusable(false);みたいのを指定しないとクリックできないかもしれない

16 :
>>11
あ、ごめん質問ちゃんと読んでなかった
ListViewに設定したArrayAdapterのgetViewで行レイアウト内のチェックボックスに対しsetヴィジブリティで表示状態設定するようにして
メール送信モードに切り替えるタイミングでArrayAdapter.notifyDataSetChangedすればいいぢゃないでしょうか

17 :
あのぅ
Android開発環境としてのEclipseに関しての質問はここでよろしいでしょうか・・・
他に適したスレがあれば誘導お願いいたします

18 :
>>17
いいんじゃないでしょうか

19 :
良いでしょうか。
じゃあとりあえずここで質問させていただきます。
NDKの勉強をしてみようと思い、CygwinやNDK等の環境を整えて
コマンドラインにてネイティブライブラリのビルドが出来るようになりました。
で、よくよく調べてみると、
プロジェクトエクスプローラーのAndroidアプリプロジェクトを右クリック

Androidツール→ Add Native Support
というのを発見しました。
これを使うと、Eclipse上からCPPファイル等のビルドまでやってくれるとのこと。
喜び勇んでこれをぽちっと押したのですが。
色々あって、このNative Supportを無しにしたいという状況になりました。
が、そのNative Supportを無効にする方法が分かりません。
google先生に聞こうにも、何て検索すれば良いのか…という状況でした。
どなたか、一度Native Supportを有効にしてしまったプロジェクトを、
Native Support無効にする方法をご存知の方がいらっしゃいましたら教えていただけませんでしょうか。

20 :
>>19
知らんけどたぶん .project ファイルあたりじゃないかな
新規のAndroidプロジェクト作って見比べながらテキストエディタで修正

21 :
>>19
俺ならダサいけど新規プロジェクト作ってソースコピーして最初からやる
環境周りでハマって調査してもいいこと無い

22 :
>>20
>>21
oh...
Eclipseのプロパティや設定等から無効化する方法は無さそうってことでしょうか。
バージョン管理ツール使っているため、新規にプロジェクトを作って云々はちょっと面倒くさいので、
まずは .projectファイルの中を見てみます。
どうもありがとうございました。

23 :
http://d.hatena.ne.jp/tondol/20130316/1363416214
の6
NDK Supportを入れ直す前提のページなので、余計なところは無視。

24 :
NativeActivityってあれどうやってGUI構築するんだ?

25 :
OpenGL ESでフルスクラッチ
だったりして

26 :
不足があればJNIでGUIツールを呼ぶだけだが、ちゃんと勉強したか?

27 :
あんま勉強はしてねえなあ。なんというか体系的な勉強がしづらい感じもある。
JNIだったりNativeActivityだったり、Androidのバージョンだったり
変化が多すぎてweb見てると何を信じていいのやら、という感じだ。

28 :
互換性の問題はどうしようもないけどNDKは本を読んでそれを動かさないと

29 :
>>19
プロジェクト内の.cprojectファイル消したら
Native Supportしてない状態にならない?

30 :
電源ボタンを押したとき
onPause()
onStop()
onDestroy()
という流れでライフサイクルが進むのですが、
onDestroy()を呼ばないようにするにはどのようにすればよろしいでしょうか?

31 :
呼ばれるものはしょうがない
呼ばれてもいいようにしろ

32 :
アプリ側から電源ボタンを押した時のイベントが取得できないんで
勝手に呼ばれてもフラグ管理できないです。

33 :
ACTION_SHUTDOWNのIntentをブロードキャストする。
これに対応すればいいんでないかい

34 :
電源ボタン押すのって、キーイベントとして取得できたと思うが

35 :
なるほどためしてみます

36 :
いつ破棄されても復元できるよう全状態を保存しておくのが王道だけど
最初から想定して作ってないと後から作り付けるのは難しいかもしれない

37 :
電源ボタン押したらって画面が消灯したらonDestroyくるってことだろ
普通なら画面消えて即onDestroy呼ばれることはないと思うけど
電源ボタンに対応しても放置して画面消えたら?
マルチタスクで別のアプリに切り替えたら?
他にも色々考えることあるんでない

38 :
あら、やだーん

39 :
>>23
>>29
おおおー消えた!元のプロジェクトに戻った!
ありがとうございます!助かりました!

40 :
どういたしまして

41 :
まだ「onDestroy()が呼ばれないようにしたい」とか言ってる人いるのか
根本的に自分の考えが間違えているという結論には辿り着けないのかな
フラグ管理って何やろうとしてるのかわからん……
他にも「onCreate()が2回呼ばれる!この端末バグってる!」って人も見たことあるけど
バグってるのはお前の頭だ、と言いたかった思い出

42 :
ちょっと試してみたけど、電源ボタンは短押しだとアプリが裏に回っちゃうからか、onKeyDownでも、onKeyUpでも、disparityKeyEventでもイベント取れなかった
長押しならOK

43 :
>>28
オススメの本などあればそれ教えてくれ

44 :
power keyって長押しでもイベント取れたっけ?

45 :
>>43
ttp://www.amazon.co.jp/Android-NDK/dp/4798036307

46 :
>>45
この本で一番役に立ったのはGLでもNativeWindowでもなく、Android.mkの書き方だったな。。

47 :
>>46
君のお勧めは?

48 :
>>45
サンクス。
わし組み込み系なんだけど、組み込みandroidとか最近聞くから試しに手を出してみたんだけど、
GCが糞すぎてとりあえずネイティブに逃げて見ようと試してるんや。
でもこの感じだと、いちおうandoroidのネイティブもやってみるだろうけど、x86に逃げてしまいそうだ。

49 :
>>45
俺も持ってるわw
というかNDK本となると極端に少ないから
日本版だと2,3冊程度しかないよな
英語のでも数えるほどしかないし

50 :
いかんせんGCが鬼門過ぎる。
javaとは縁遠かったけど、あれを許容出来る用途じゃないと使えんのじゃないかと思った。

51 :
>>16
ありがとうやってみます

52 :
>>47
その一冊しかしらんのよ。。
おれもオススメ教えてほしい

53 :
いかにGCを起こさせないようにメモリ管理するか、あたりがJAVA特有だなーって感じ。
明示的にメモリ管理できるNative層のほうが書きやすいときもある

54 :
つーかGCは結局参照残っててメモリ維持されてたら同じだからな

55 :
というかだな文句言う暇があったら
自分がクソと嘆いてるその環境で、実に素晴らしいソフトを世の中に産出している人達
自分が不可能で出来ないと嘆いている機能を、見事に綺麗に実装している人達
そういった人達が現実にいることについて
そういったアプリがストアに並んでいる事について
まず1度よーーーーーーーーーーーーーーーーーーーーーく考えて見るべき

56 :
たまにでかいGCくるからなonCreateの頭で明示的に呼んでおけばいくらかましだろうか

57 :
dpとspを換算する方法を教えてください。
Android4の設定画面からフォントサイズを変えるとscaledDensityが変わるそうですが
手元のnexus7でどのサイズを選択してもdensityとscaledDensityが同じ1.3312501のまま変わりません。下記以外の他の方法があるのでしょうか?
DisplayMetricsの取り方
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
metrics.scaledDensity

58 :
>>57
activity#onConfigrationChanged
application#...

59 :
xmlのレイアウト関連で視覚的にわかり易く解説してるサイトや本はありませんか?
フレームレイアウト使ってビューを重ねようとしたら、他のレイアウトが崩れてきちゃってわけわかめで。

60 :
8からついてるクライアントHYPER-V有効にしちゃうとHAXMは使用不可になるのな
x86版HYPER-Vにいれないとダメか

61 :
//xmlレイアウトからスピナ取得
Spinner mSpinner = (Spinner)act.findViewById(R.id.spinner);
//データアダプタ作成
ArrayAdapter<String> mAdpter = new ArrayAdapter<String>(act, android.R.layout.simple_spinner_item);
mAdpter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
//スピナにアダプタ関連付け
mSpinner.setAdapter(mAdpter);
//スピナに選択肢設定
mAdapter.add("項目0");
mAdapter.add("項目1");
//スピナの選択肢を項目0に設定
mSpinner.setSelection(0);
//スピナに選択肢選択イベント設定
mSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {〜〜});
とやると、スピナに選択肢選択イベント設定したタイミングでイベントが発生してしまいます
プログラムから選択肢を選択する際に、イベントを発生させない方法はありますでしょうか。

62 :
>>48
趣旨は異なるが、こっちの方が幸せになるかも
ttp://www.amazon.co.jp/dp/4863540760

63 :
Android Studioの質問なのでスレ違いかもしれませんが、該当スレがわからなかったのでここで質問します。
http://www.dotup.org/uploda/www.dotup.org4608669.png
インストールしてプロジェクトを作成してすぐの画面なのですが、左のペインの「Project」のところに
本来ならば「myapplicationproject」に関するディレクトリや.javaファイル等が列挙されると思うのですが、
画像のようにgradle関係のファイルしか表示されません。
解決方法をご存知の方教えてください。

64 :
>>57
DisplayMetrics metrics = getResources().getDisplayMetrics();で正しく取れました
普通Configurationが変わるとActivityが作りなおされるのでイベントは関係ありませんでした
ありがとうございました

65 :
変数の代入に?や:で区切られてる構文があるんですが、分岐して代入してるのですか?
ググっても見つからないのですが、なんという構文ですか?

66 :
>>65
初心者コースに行きなさい

67 :
>>65
3項演算子

68 :
三項演算やー

69 :
<?> ←じゃあこれはなに?

70 :
ジェネリクス

71 :
どうにもNDKの開発環境周りのトラブルが多すぎる・・・
CDTのCode Analysisがインクルードファイルの中を覗かずに解析するもんで
declare cannot resolvedエラーがでまくるんだが、これ解決方法ある?

72 :
>>71
workspaceディレクトリを作り直す
具体的には、eclipseを終了し、現在のworkspaceディレクトリをrenameして、eclipseを起動しなおす
その後、必要に応じて、renameしたところからプロジェクトをimport
多分、workspace内の、.から始まる設定の何がおかしくなってる
面倒なので、いつもこうやって直してる
うちでは、ndkのversion up(差し替え)で、そのエラーをよく見る

73 :
>>72
おお、サンクスサンクス

74 :
>>71
コマンドライン最強

75 :
三項演算子って使いどころがよくわからない
if文で済ませちゃう

76 :
おれもeclipseビルドは使わずに、ndk-buildとantでやるほうがメインになってる。。
eclipseとかpluginアップデートするたびに挙動が変わるのが面倒で…

77 :
一般論だけど三項演算子はreturnのときに使うと分かりやすいかな

78 :
>>75
int a=null==b?0:c;
とか、aには必ず何か入るんだと理解しやすい。

79 :
>>76
その場合デバッグとかどうしてるの?
コマンドラインからgdb?

80 :
>>13
>>14
レス遅くなってすいません。
エミュレータを作り直したらなおりました。

81 :
>>79
デバイス使うアプリが多いから、デバッグはadb logcatに頼ってることがおおい
デバッガ繋ぐ場合はeclipseつかうよ

82 :
LAME使うと必ずソース公開しなきゃいけないの?

83 :
JB4.3でSoundPoolのloopできないバグ
みんな、どう対応してる?
https://code.google.com/p/android/issues/detail?id=58113

84 :
>>81
やっぱそうかー
マシンスペックのせいなのかeclipseでのデバッグ実行がやたらと重くてね…
もしかして、コマンドラインからの方がいいのかなと思って
ありがとう

85 :
byte[] data = new byte[] {0xEF, 0xBB, 0xBF};
の配列にを一致条件分岐すると
if (data[0] == 0xEF && data[1] == 0xBB && data[2] == 0xBF) {
// Xperia AX:通る
// Xperia Acro:通らない
}
if (data[0] == (byte)0xEF && data[1] == (byte)0xBB && (byte)data[3] == 0xBF) {
// Xperia AX:通る
// Xperia Acro:通る
}
みたいな端末による差が出てくるんだけど、同じAndroidバージョンでこんな差がでる理由ってなんなんだろう?
端末ごとの処理系とか違うもんなんだろうか

86 :
>>85
byte[] data = new byte[] {(byte)0xEF, (byte)0xBB, (byte)0xBF};
たぶんw

87 :
>>85
if文の評価がint型として扱われてるからじゃないかな?

88 :
>>85
そういうこともあるのか
このレベルで起こる不具合の報告って該当機種持ってないと見つけられないよな

89 :
途中で送信してしまった
0xEFをキャストなし0x0EFにしても、警告がでなければ、後者と同じ動きするはず

90 :
byteが符号付でマイナス判定されるかの差じゃないの?
ってもそんな最近そこの処理が変わったとも思えないが

91 :
スーパーのメンバにアクセスするときの相談です

public class MainActivity extends FragmentActivity {
int i; //メンバ
クラス{
メソッド{
i=+10;
}
}
}
これで、クラス#メソッドのiへのアクセスは怒られると思うのですが
iをstaticにするとAndroidでは初期化問題があると聞きました。
ほか、プリファレンスを使うしか方法は無いのでしょうか?

92 :
javaのbyte型の範囲って-128〜127だっけ?
0xEFって239だからbyteに入れると溢れて、-128+溢れた分の112で-17になる?
だからint型の0xEFと比較すると、-17==239で条件一致しない?
端末によって動きが違うのは不明だけど、こんな感じ?

93 :
>>92
>>87,89だけど、間違ってた
ごめん
まず、Byte型とint型(0xEF)を比較したとき、Byte型がintに拡張される
このとき、拡張は最上位bitと同じ値で補完される(例だと1)
なので、Byte型変数に0xEFが代入されてるとき、0xFFFFFFEFとなる
ここからは予想が入るけど
直値0xEFの補完の仕方の違いによって挙動が変わるんじゃないかな?
つまり、0x00EFとするか、0xFFEFとするか
その辺の言語仕様が規定されてたかどうかは知らないので、詳しい人に任せます
結論としては、ifの中の直値をByte型にキャストするのがいいと思う
こうすることで、Byte型はプリミティブな型なので、Byte型同士の比較になって、期待通りの動きをするはず

94 :
>>93
拡張は最上位bitで補完されるってまじ?
拡張ってキャストのことだよね?
int i = 1000000000;
long l = i;
ってやると、
1000000000
3B9ACA00
111011100110101100101000000000

111111111111111111111111111111111011100110101100101000000000
FFFFFFFFB9ACA00
1152921504533105152
になるってこと?

95 :
>>94
符号付だから最上位ビットが符号ビットでそれで埋められる
その例だと上のほう余ってるから最上位0でしょ

96 :
>>94
intが32bit、longが64bitだったと思うけど、intからlongに変換されるとき、のこり32bitに0か1が入るよね?
このとき、int(i)の一番左端(表現としては不適切かも)の値で埋められる
0x3B9ACA00の最上位bitは0なので、0で埋められるよ
というか、最上位bitは符合bitになるので、int型の範囲内の数値をlongに入れても問題ないよ

97 :
64bit端末出たらなんか大変なことになりそうだな

98 :
キャストしてないとintの領域分だけ、byte配列値を結合して比較されるんじゃないの
byte配列3つだと足りないから、29〜32bitは補完されるんじゃね
断定はできんが

99 :
この問題はjavaでは起きないはずじゃなかったっけw
ってジャワ信者が言ってたけどなwww

100read 1read
1read 100read
TOP カテ一覧 スレ一覧 2ch元 削除依頼
Excel VBA 質問スレ Part32 (377)
【Lisp】プログラミング言語 Clojure #3【JVM】 (100)
★★Java質問・相談スレッド165★★ (120)
画像処理 その14 (120)
簡単なプログラム言語って何? (142)
C++相談室 part105 (888)
--log9.info------------------
どのヘッドホンを買えばいいかここで聞け77 (614)
【ビエラ】Panasonic VIERA Part91【プラズマ専用】 (891)
【RGBY】4原色かXYZで記録&再現するべき【高画質】 (108)
東芝液晶テレビ REGZA(レグザ)総合 Part162 (274)
KENWOOD Kseriesについて語るスレ22 (322)
SONY UDA-1 HAP-S1 ハイレゾの2 (626)
東芝液晶テレビ REGZA(レグザ)Zシリーズ専用 89 (311)
Sony BRAVIA ブラビア Part160 (216)
SHUREのイヤホンを語るスレ Part79 (588)
NHK技研は 8K と共に滅びるのが見えた   【5】 (420)
ONKYOのFRシリーズ Part.11 (113)
SONY HMZ ヘッドマウントディスプレイ Part68 (514)
【BD】Blu-rayアニメ総合 Part215【ブルーレイ】 (191)
【オーテク】audio-technica【ヘッドホン】Part85 (303)
【UE・JH】カスタムIEM 総合 39 【UM・Rooth】 (144)
液晶テレビ総合スレッド Ver.89 (210)
--log55.com------------------
【名古屋】中小規模の運送屋【愛知県】その29
【下品な青鯨】富士運輸スレッド21 【シミジュン追放】
佐川急便への苦情不満クレーム統一スレ@運交板13列目
【彩の国】埼玉県の運送会社★49【さいたま】
【ポーアイ】神戸海コン PIC54本目【六甲】
【元ペニオク・タクシー・現軽貨物?】のぶ転落逃亡人生劇場part10【勧誘詐欺師
【従業員専用】佐川急便統一スレッド102【従業員専用】
【白タクではない】CREW(クルー)【配車サービス】 Part.4