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代でも採用される派遣会社はありませんか
北九州の派遣について