Androidプログラミング質問スレ Part37 (214) TOP カテ一覧 スレ一覧 2ch元 削除依頼
【普通のやつらの】 Arc Language 0 【上を行け】 (260)
OpenGLスレ Part20 (122)
【COBOLから】バッチ処理【Javaまで】 (153)
VBで作られた有名なアプリって何? (168)
【Lisp】プログラミング言語 Clojure #3【JVM】 (100)
音声合成プログラムを作りる (326)

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

100 :
386系のアセンブラ命令で言えば movsx が実行される。
unsigned であれば movzx になる
http://www.mztn.org/lxasm64/amd07_mov.html

101 :
book.mycom.co.jp/support/pc/gles2/#CODE
ここのサンプルのGL20ModelEx3のドロイドのモデルをドラッグで移動させたいのですがどうすればよいでしょうか

102 :
誰か91に答えてやれよw
俺には何言っているのか良くわかんねからパスだがw

103 :
内部クラスもスコープもろくに理解してなさそうなのに、
自信有りげに、staticの初期化時期の問題とか
Preferenceとか言ってる感じからして、説明しても無駄。

104 :
そもそもスーパーのメンバの話じゃなさそうなんだが

105 :
先週、surface pro 2を検討した者です。128GBモデルを買いました。
Windows8.1に慣れないのでいろいろ苦労しましたが、Nexus7での実機デバックができるようになりました。
あとエミュレータのほうはかなりカクカクします。
またマウス、キーボードに勝る入力方法は存在しないと実感しました。
私の総合評価は80点くらいです。

106 :
>>105
自己レスですが、ちょっとした編集なら問題ないですよ、寝ながらプログラミングできます。コード見るのもフリック操作でできます。

107 :
>>91
何がしたいかわからんが、こんな感じのコードか?
Android関係ないが、動くぞ
public class MainClz {
private int cnt;

public MainClz(){
cnt = 0;
}

public void foo(){
SubClz s = new SubClz();
s.var();
System.out.println( "cnt=" + cnt );
}

public static void main( String args[] ){
MainClz m = new MainClz();
m.foo();
m.foo();
}

private class SubClz {
public void var(){
cnt += 10;
}
}
}

108 :
C言語っぽい話してるなーと思ったら
やっぱり出た!C言語おやじ!まだいたんだなアンタ >>99

109 :
>>85
下のdataインデックスが3になってるからじゃねって事は無いよな

110 :
javaのintは32bit固定なんだな

111 :
自分のapk内のActivityを全部終了させて
アプリを終了させるボタンを作りたいのですが、
どのように書けば良いのでしょうか?
Activityを遷移する都度 .finish() で終了させてしまうと
[BACKキー]で戻ることができなくなるため好ましくありません。
よろしくお願いいたします。

112 :
>>111
ApplicationインスタンスあたりにActivityのList持っといて、onCreate()のたびにキャッシュしとく、とか?

113 :
>>111
Activityを遷移する都度 .finish() で終了させてしまうと
[BACKキー]で戻ることができなくなるため好ましくありません。
っていうのが良く分からないけど、
Activity1→Activity2→Activity3って遷移してActivity3でアプリ終了ボタンを押す
Activty3でリザルトintentにアプリ終了するよん。っていう旨の情報を設定してfinish
Activty2のonActivityResultでレスポンスintentにアプリ終了するよん。っていう旨の情報があったら即finish
Activty1のonActivityResultでレスポンスintentにアプリ終了するよん。っていう旨の情報があったら即finish
じゃだめなの?

114 :
>>85
このコードで端末ごとで違いが出るか?
&で処理すれば済む事でもある

115 :
>>114
出てしまったんだなこれが。
エラー報告めっちゃ届いてて、よく見たら(byte)にキャストし忘れてたけど、多分これが原因じゃないよなー
って一応直してユーザにアップデートさせたら、エラー報告がぱったり無くなった

116 :
>>115
それは面白い
bye型にunsignedがないのに不思議だし、端末によってというのがさらに不思議だ

117 :
>>85
これ、原因を考えるなら、リバースエンジニアリングして、smaliでどうなってるかを見たらいいかも?

118 :
>>107
ありがとうございます。
僕も動くと思ってやったので疑問です。
実際はインナークラスのメソッドでクリックリスナーをセットしてonClick内からの、外部メンバの参照です。
public class MainClz {
private int cnt;
public MainClz(){
button.せっとくりっくりすなー(new Clicklistener{
@Override
onClick(){
cnt = 0;//staticちゃうやんけカス
}
});
}
}

119 :
>>117
同一apkで端末によってならVMの解釈側じゃないかね?
>>118
リスナーはどこから呼ばれうるか考えろ

120 :
>>105
Sureface 使ってるけど、たまにエミュ起動しなくない?

121 :
>>85
どう考えてもありえないな
端末側にそんなバグがあるのなら色んなアプリで症状が出てるはず

122 :
>>118
問題ないないだろ?
cntは本当にMainClzのメンバか?

123 :
>>121
バグっていうか>>93が言ってるみたいな、端末仕様のしっかり固まってない細かい部分の差なんじゃないのかね

124 :
>>123
言語仕様の問題でしょ
だから実現するなら端末のバグ

125 :
>>118
cnt = 0;

MainClz.this.cnt = 0;
にしてコンパイルエラーになるならどっか問題ある。ClickListenerが実はcntというメンバを持ってるとか
内部クラスから親クラスのメンバにはアクセスできるはず・・・

126 :
Androidアプリ内のWebViewにAdSense張っても(残ってても)問題ないですよね?

127 :
>>126
規約違反の広告会社が多いと思うぞそれは
リファラおかしくなって調査されるだろうし

128 :
>>85
検証してやろうと一行目コピペしたらキャストエラーじゃん原文載せろよ

129 :
まあいいキャストしなおした当然falseだったISW11M

130 :
>>128
あ、ごめん
ダウンロードしたテキストファイルデータの先頭にBOMコード(0xEF, 0xBB, 0xBF)が入ってたら消すってプログラムだったんだわ
byte[] result = null;
HttpClient httpClient = createHttpClient();
HttpGet httpGet = new HttpGet("http://test.jp/test.txt");
HttpResponse httpRes = httpClient.execute(httpGet);
httpRes.getStatusLine().getStatusCode();
httpRes.getEntity().getContent();
int size = 0;
while (1 <= (size = is.read(work, 0, work.length))) {
bos.write(work, 0, size);
}
work = bos.toByteArray();
if (work[0] == (byte)0xEF && work[1] == (byte)0xBB && work[2] == (byte)0xBF) {
result = new byte[work.length - 3];
System.arraycopy(work, 3, result, 0, result.length);
}

131 :
>>130
workの定義は?

132 :
>>131
byte[] work = new byte[1024];

133 :
単に直値0xEFがどの型で扱われるかに変更があったってだけでしょ

134 :
ちげーよ機種によって挙動が変わるのがもんだいなんだよ

135 :
直値(定数)は、
private/public static final byte 名前 = (byte)0xEF;
を使うようにしましょう
または、bit演算で必要なところだけ切り出して使いましょう

136 :
>>134
端末のせいではなく、
コードが悪いだけのはず

137 :
byteを符号付intに格上げして比較だからfalseで正常かと思ったがbyteって符号無しなのねうーむ

138 :
>>136
お前は半年黙ってろ

ググッたら符号有りじゃんw

139 :
いつから符号なしになったの?

140 :
>>137
javaは符号付しか無い

141 :
>>138
土下座しな

142 :
>>138
カスが、土下座しなwww

143 :
>>138
カスが、土下座しなwww

144 :
>>140
だから、問題提起した「カスのコードが悪い」にキマリだな

145 :
>コードが悪いだけのはず
"はず"ってなんだよ予想で語るな馬鹿、返事はいらねーからな

146 :
if( data[0]==0xEF && data[1]==0xBB && data[2]==0xBF ){
これが通るってのは元の配列の中身が違うだけじゃないか?
data = (byte)0xEF
if(data == 0xEF)
これぐらい簡単にしてその端末で通るの?

147 :
charが符号無しじゃね

148 :
C++プログラマの自分は「&」を使うのが「常識」だけどな
ジャワさんはレベルが低いからしょうがないかwww

149 :
>>147
ahowww

150 :
まさにカオス

151 :
結局一致条件で(byte)0xEFと比較するようにすれば今んとこ全端末で問題なかったんですけどね

152 :
アプリを再起動する関数を作っていますが、
呼び出すActivityによって挙動が変わります。
// アプリを再起動する
public static void restartApp(Activity activity) {
Intent intent = new Intent(activity, MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
activity.startActivity(intent);
activity.finish();
}
これを、以下の2パターンで実行すると、
それぞれ次のように動きます。
(1) MainActivity -> Activity2 -> Activity3, ここで実行 -> MainActivity
--[BACKキー]--> HOME画面
(2) MainActivity -> Activity2 -> PreferenceActivity, ここで実行 -> MainActivity
--[BACKキー]--> MainActivity --[BACKキー]--> HOME画面
FLAG_ACTIVITY_CLEAR_TOPを指定していますが、
(2)の場合はMainActivity がスタックに残った状態で
そこにMainActivity が積まれている動作となっています。
動作としては(1)と同じ挙動を求めているのですが
何が悪いか分かりますでしょうか?

153 :
すみません、色々試していて混乱していましたが、
ただしくは以下の動作でした。
(1) MainActivity -> Activity2 -> ここで実行 -> MainActivity
--[BACKキー]--> HOME画面
(2) MainActivity -> PreferenceActivity, ここで実行 -> MainActivity
--[BACKキー]--> MainActivity --[BACKキー]--> HOME画面
この動作の違いに困っています。
よろしくお願いいたします。

154 :
端末が違っても実装されてるOSは全部同じものだし
CPUだってその端末以外の機種にだって使われてるものだし
大抵はコード側のバグだと思うけどな
ハードウェア叩いてる箇所じゃないんだしさ
あとJavaのByte型は-128〜127な
0〜255とか言ってるのはC言語やりすぎな
http://d.hatena.ne.jp/vividcode/20091128/1259415771

155 :
>>154
個人的にはその127までのByte型に0xFF突っ込める時点で駄目だと思うんだけどな

156 :
>>151
>>(byte)0xEFと比較するようにすれば
>>0xEFと比較するようにすれば
同じはず
他に原因があるんだろうな

157 :
OSが2.3と4.0ってのも

158 :
>>155
>>個人的にはその127までのByte型に0xFF突っ込める時点で駄目だと思うんだけどな
無能をさらけだしてるぞwww
0xFFがjavaでいくつになるか調べてごらんwww

159 :
>>153
MainActiviyのlaunchModeをsingleInstnceにしたらどうだろう?
その辺はフラグとの組み合わせでいろんな動きするから、色々試してみたら望みの動きするかも

160 :
unsignedがないのが一番悪い
そもそもjavaに期待は一切してないが

161 :
>>158
少なくともSDK4.2.2で試した限りだと
0xFFはint型と判断されるから10進だと255だな
byte型に代入して、その変数をそのまま評価すれば符号付だから-1
int型にキャストした場合上が符号ビットで埋められてやっぱり-1
普通に0xFFでマスクしてやれば符号ビット消えるから255になるけどな

162 :
型と変数とリテラル
ちゃんと分けて考えろ

163 :
なんでJAVA ってunsignedを作らなかったのだろう。
めんどくさかったのかな。

164 :
作る分は無くても困らないが移植性は下がるな

165 :
>>159
ありがとうございます。
launchModeというものを初めて知りましたので
色々と試してみます。

166 :
正直、byteはunsignedだけでいいと思う。
バイト列いじるjavaコードの可読性の悪さは異常。

167 :
>>163
C++ の反省から極力シンプルにしたかったんでしょ

168 :
しかしコードは複雑化

169 :
一人のクソコードから盛り上がってますね
端末で違いがあるって…呆れる

170 :
草はどうしたずっとアホみたいに笑ってろよ

171 :
>>6
自己レス。
結局、バーコードリーダーが必要な時にenable、入力が終わったらdisableっていう泥臭いやりかたになった。
再接続時の微妙な待ち時間が惜しい。
Disableの度にactivityのonCreateから処理が始まって非常にうざかった。
でかいgcが走るから仕方ないのかな?

172 :
>>157
みんなこれ華麗にスルーしてるけど、
俺もこれが原因だと思うんだがどうよ?
evoとevo3Dしかないけど試してみようか?

173 :
GooglePlayに有料で売りだした自分のアプリを消すか非公開にする方法を教えて下さい

174 :
非公開にする

175 :
リストビューをカスタマイズして、チェックボックスをつけたのですが、スクロールするとチェックしていない行にチェックがついてたり、挙動がおかしくなります。
内部的には、その行にチェックがついてるみたいなので、描画関連がおかしいみたいですが、そういう事例ありますか?

176 :
>>175
2.3なら問題ないのに
4.xだとそうなる。
っていう問題なら俺も出てるな。
自分だけ用のもの(公開していない)
にしか実装していないから
真剣に調べてないけど。

177 :
ウェブ上にのってるソースをコピペしたら、
著作権侵害になることありますか??
なんか神経質に心配になってきました。
解説サイトでもなんでもです・・・・。
僕は強迫神経持ちです。

178 :
>>176
チェックを保持して、getviewの際にsetし直すようにしました。
多分、単純ミスでした。

179 :
>>177
なることはあるだろ。
ポリシー表示による。

180 :
>>177
そんな心配は著作者にも知れ渡るような秀作アプリを開発できてからにしろ

181 :
>>177
> 著作権侵害になることありますか??
「なることは」あります。

182 :
>>85
>>130
>> if (data[0] == 0xEF && data[1] == 0xBB && data[2] == 0xBF) {
>> // Xperia AX:通る
>> // Xperia Acro:通らない
>> }
このif文が通る処理系なんて存在しないと思うんだけど
ほんとうにXperia AXは通るの?
単にBOMがついてなかっただけじゃない?

183 :
>>182
>>このif文が通る処理系なんて存在しないと思うんだけど
とりあえずjavaではね

184 :
>>85
>> byte[] data = new byte[] {0xEF, 0xBB, 0xBF};
おぃおぃ、この時点でエラー出るじゃん(笑) ※intからbyteには変換出来ません
みんな>>85に釣られちゃったねぇwww

185 :
>>85
釣られついで、
public void test()
{
int a = 0, b = 0;
//byte[] data = new byte[] {0xEF, 0xBB, 0xBF};
byte[] data = new byte[4];
data[0] = (byte)0xEF;
data[1] = (byte)0xBB;
data[2] = (byte)0xBF;
if (data[0] == 0xEF && data[1] == 0xBB && data[2] == 0xBF) {
a = 1;
// Xperia AX:通る
// Xperia Acro:通らない
} else {
a = 2;
}
//if (data[0] == (byte)0xEF && data[1] == (byte)0xBB && (byte)data[3] == 0xBF) {
if (data[0] == (byte)0xEF && data[1] == (byte)0xBB && (byte)data[2] == 0xBF) {
b = 3;
// Xperia AX:通る
// Xperia Acro:通る
} else {
b = 4;
}
}

186 :
答えは?
a=?
b=?
>>85 お疲れ様でしたwww

187 :
いつまでひっぱんだよ

188 :
「機種ごとに動作が違う」ではなくjavaの仕様外の動作なんだから、さっさとメーカーに文句入れろ。

189 :
>>188
また釣れたwww

190 :
>>177
APLなら問題無し、ウェブ上に載ってるコードだって
結局サンプルコード的なものなら問題無し。
この前、ちょっと解らないとこがあったので
Androidのサンプルをウェブで探してた時
「クラスなのにコンストラクタが無い!」
とか書いてるページがあって
心の中で「デフォのコンストラクタが書いてないだけで
存在してんだよ」とつっこんで、そのページはすっ飛ばした。

191 :
Web上にはGPLなコードがいくらでもあるわけだが。

192 :
基本そのままコピペしたら著作権侵害だよ

193 :
0xEFなんて書き方してるから分からないのか?
if (data[0] == 0xEF && data[1] == 0xBB && data[2] == 0xBF) {

if (data[0] == 239 && data[1] == 187 && data[2] == 191) {
でしょ?
byteの範囲が-128〜127しかないんだから
結果が真になるわけがない

194 :
>>193
「なのに端末によって違う」 ってウソ吐いてる事が問題

195 :
>>193
茶化しぬきにこの発想は感心した
byte型を10進で考えたことなかったから、目から鱗だわ
試してないが、(byte)-17==(byte)239は真になるのかな?
応用すると、apk割り対策とかにも使えそうだね

196 :
いや使えないだろ
何をどう思ったのか分からんが

197 :
(byte)239って書いたらエラーじゃね

198 :
質問ですhttp://y-anz-m.blogspot.jp/2012/06/fragment-activity.html
この方によるとFragmentがActivityを参照したいときは、onAttach(Activity)が呼ばれた時に取っておく。
ただしFragment が必ず特定の Activity にしかアタッチされない場合は、使うときにgetActivity()呼ぶ。
と書いてあるようですが、これを使い分ける意味はあるのでしょうか?
onAttach(Activity)の引数とgetActivity()の返り値が異なることはありえるのでしょうか?

199 :
>>197
エラーにならないよ
(byte)0xEFと同じ

200 :
>>184
なるほどな
85のやろおおおおおおおううううううううううううう!!!

201 :
>>197
エラーじゃない
(byte)0xEFでも(byte)-17でも(byte)239でも全部同じ
比較してももちろんtrue
リテラル値やキャストなんて、基礎もいいとこ
基盤があやふやだと、色んなところで躓くよ

202 :
>>198
そんなこと書いてない
特定のActivityにしかアタッチされない場合には、その方法でもできるし、コードが短くなる

203 :
そいや昔、ループタイマーを加算していくと
いずれオーバーフローして負の値になること忘れていて
バグった思い出があるな

204 :
>>intからbyteには変換出来ません
intをキャストする事自体が 低レベルプログラマ って事だな

205 :
byteよりint型のほうが処理が早いというイメージが強いせいか
0x00-0xffまでの値を扱うときでもintを使ってしまうことが多い。
intで扱ったデータをバイナリ展開するとき、当然byte型に型変換するわけだが
それってやっぱ低レベルなのかね。

206 :
と思ったけど、よく考えるとjavaってbyte型も内部ではint型として扱われるんだっけ?
速度差はないのかな,よく知らん。

207 :
Drawable drawable = getDrawable();
if (drawable != null) {
textView.setBackgroundDrawable(drawable);
}
という部分があるのだが、
setBackgroundDrawbleのところで NullPointerException が発生する。
drawableが非nullであることを確認しているのに。何これ。

208 :
はぁぁ分かった。
リファクタリングのせいでTextViewのIDが変わっちゃってたんだ。
アホらし。

209 :
>>206
booleanもintで比較してる
javaのintはワードではないし、
ネイティブコードではないので挙動は不明

210 :
windows8.1にアプデしたらエミュレータでwindowsが落ちるわ
eclipseが休止状態から復帰後立ち上げるとフリーズして再起動必須になるわ
ほんとwindows8.1は糞すぎる

211 :
俺も8.1だがそんな症状一切ないぞ

212 :
全員出るor出ないならいいんだよね
まぁ全員出るならそれはそれで大問題になってるだろうけど
特定の環境でおかしくなるってのが一番やっかいだから

213 :
>>210
ごみPC捨てろw
うちも8.1にしたが快適に使えてるぞ!
かえって速くなったくらいだよ!

214 :2013/10/28
要約すると8.1がクソなのではなく>>210がクソってことだな
TOP カテ一覧 スレ一覧 2ch元 削除依頼
Perlについての質問箱 61箱目 (102)
スレ立てるまでもない質問はここで 129匹目 (952)
リーダブルコーディング技術スレ (187)
■暗号技術【ROUNDsurea】■ (574)
JAVAってこんなことも出来ないの? (695)
【上流社会】MSDNサブスクリプション総合【最先端】 (652)
--log9.info------------------
シチズンエクシードを語りませう - Part 3 (398)
【独魂】 クロノスイス Chronoswiss 2【ラング】 (848)
【魔界】 ビーバレル BB0003【B-Barrel】 (261)
【とにかく安く】★★電池交換★★ 2回目 (265)
なぜ他人の目を気にして腕時計を選ぶのだ? (230)
ロレックス オイスターパーペチュアル Part1 (393)
【日ロレ】日本ロレックス【4本目】 (169)
葉巻・シガー総合スレ【31】 (963)
手巻き煙草だぁ。その41 (584)
【200円】ゴールデンバットを盛り立てるスレ Part18 (840)
▼△ 煙草銘柄・器具関係 IDおみくじ ▼△ (201)
【パイプ】今喫ってる銘柄は? 3【紙巻お断り】 (262)
【初心者】パイプスモーキングQ&A Part55【歓迎】 (1001)
【Cigar】葉巻の海外通販スレpart10【シガー】 (558)
PMJ栄光ある未来の為にハンドリング29 (669)
キセル(煙管)参拾伍服目(´ー`)─y─┛~~ (853)
--log55.com------------------
【東大】高学歴の派遣労働者【京大】
アルプス技研ってどうよ
チラシの裏@派遣業界板
エリア88風に派遣の今を語る
もしもしホットライン鹿児島 裏情報求む!
日払い単発派遣(倉庫系)で一番お勧めは何処か?
40代でも採用される派遣会社はありませんか
北九州の派遣について