Androidプログラミング質問スレ Part37
1 :
デフォルトの名無しさん :
2013/10/22(火) 17:30:03.19
スレたて乙。 立てられなかったので天プレの文字化けや古くなったスレの修正も出来なかった…
やべ適当にコピペしたから文字化けきづかんかった
AMDだからHAXMも使えないしなぁ…と思ってたが、今更AndroVM知った。 これテンプレ入りしてもいいんじゃねぇの?
Bluetoothのバーコードリーダーを繋いだら、 実装を変えなくてもEditTextに簡単に入力されて安心した。 が、認識と同時にソフトウェアキーボードが隠れてしまって、 使えなくなることが判明した。 InputMethodManagerのForceも無視。 Bluetoothを解除するとキーボードが復活する。 リーダーもキーボードも使いたいんだが、 何のイベントを邪魔したらキーボードを救えるでしょうか?
android2.2以降で、ナビゲーションバーを除いた 今の向きの 横幅をdpで取得する方法を教えて下さい。
DisplayMetricsで取得できるdpi値は 海外の極一部の端末(GalaxyAceとか?)で正確な値を返していない気がする Nexus7で取得した値を使って画面に図形表示して定規で測ってみると微妙に小さい。
リストビュー内に配置しているチェックボックスをボタンクリックでvisible、invisible切り替えたいのですが、どのような方法を取ればいいでしょうか。 例えば、電話帳のリストが出ていて、通常はクリックで電話、メニューなどでメール送信モードに切り替えると複数送信の為にチェックボックスを表示させたいのですが。
自分は、NEXUS7しか実機持って無いので エミュレータでスマホのテスト してるんですがボタンのテキストを変更しても 変更されないんですが、エミュレータの設定が悪いんでしょうか それともコードが悪いんでしょうか どなたか教えて下さい。
>>12 ずいぶん前だけど、リソースの変更を検知してくれないことがあって、その時はクリーンしてから再ビルドで解決した
それでもダメなら、アプリをアンインストールしてみて
>>11 AlertDialogの亜種でチェックボックス付きリストを表示するダイアログがある
AlertDialog.Builder.setMultiChoiceItems みたいな感じだったと思う
またはListViewの行レイアウトにチェックボックスを配置する
ListViewに設定するArrayAdapterのgetViewで
((LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(レイアウトリソースID, null);
するレイアウトに配置する。
その際チェックボックスに対しsetFocusable(false);みたいのを指定しないとクリックできないかもしれない
>>11 あ、ごめん質問ちゃんと読んでなかった
ListViewに設定したArrayAdapterのgetViewで行レイアウト内のチェックボックスに対しsetヴィジブリティで表示状態設定するようにして
メール送信モードに切り替えるタイミングでArrayAdapter.notifyDataSetChangedすればいいぢゃないでしょうか
あのぅ Android開発環境としてのEclipseに関しての質問はここでよろしいでしょうか・・・ 他に適したスレがあれば誘導お願いいたします
良いでしょうか。 じゃあとりあえずここで質問させていただきます。 NDKの勉強をしてみようと思い、CygwinやNDK等の環境を整えて コマンドラインにてネイティブライブラリのビルドが出来るようになりました。 で、よくよく調べてみると、 プロジェクトエクスプローラーのAndroidアプリプロジェクトを右クリック ↓ Androidツール→ Add Native Support というのを発見しました。 これを使うと、Eclipse上からCPPファイル等のビルドまでやってくれるとのこと。 喜び勇んでこれをぽちっと押したのですが。 色々あって、このNative Supportを無しにしたいという状況になりました。 が、そのNative Supportを無効にする方法が分かりません。 google先生に聞こうにも、何て検索すれば良いのか…という状況でした。 どなたか、一度Native Supportを有効にしてしまったプロジェクトを、 Native Support無効にする方法をご存知の方がいらっしゃいましたら教えていただけませんでしょうか。
>>19 知らんけどたぶん .project ファイルあたりじゃないかな
新規のAndroidプロジェクト作って見比べながらテキストエディタで修正
>>19 俺ならダサいけど新規プロジェクト作ってソースコピーして最初からやる
環境周りでハマって調査してもいいこと無い
>>20 >>21 oh...
Eclipseのプロパティや設定等から無効化する方法は無さそうってことでしょうか。
バージョン管理ツール使っているため、新規にプロジェクトを作って云々はちょっと面倒くさいので、
まずは .projectファイルの中を見てみます。
どうもありがとうございました。
24 :
デフォルトの名無しさん :2013/10/23(水) 20:38:24.01
NativeActivityってあれどうやってGUI構築するんだ?
OpenGL ESでフルスクラッチ だったりして
不足があればJNIでGUIツールを呼ぶだけだが、ちゃんと勉強したか?
あんま勉強はしてねえなあ。なんというか体系的な勉強がしづらい感じもある。 JNIだったりNativeActivityだったり、Androidのバージョンだったり 変化が多すぎてweb見てると何を信じていいのやら、という感じだ。
互換性の問題はどうしようもないけどNDKは本を読んでそれを動かさないと
>>19 プロジェクト内の.cprojectファイル消したら
Native Supportしてない状態にならない?
30 :
デフォルトの名無しさん :2013/10/23(水) 22:24:07.04
電源ボタンを押したとき onPause() onStop() onDestroy() という流れでライフサイクルが進むのですが、 onDestroy()を呼ばないようにするにはどのようにすればよろしいでしょうか?
呼ばれるものはしょうがない 呼ばれてもいいようにしろ
32 :
デフォルトの名無しさん :2013/10/23(水) 22:31:14.34
アプリ側から電源ボタンを押した時のイベントが取得できないんで 勝手に呼ばれてもフラグ管理できないです。
ACTION_SHUTDOWNのIntentをブロードキャストする。 これに対応すればいいんでないかい
電源ボタン押すのって、キーイベントとして取得できたと思うが
35 :
デフォルトの名無しさん :2013/10/23(水) 22:51:53.20
なるほどためしてみます
いつ破棄されても復元できるよう全状態を保存しておくのが王道だけど 最初から想定して作ってないと後から作り付けるのは難しいかもしれない
電源ボタン押したらって画面が消灯したらonDestroyくるってことだろ 普通なら画面消えて即onDestroy呼ばれることはないと思うけど 電源ボタンに対応しても放置して画面消えたら? マルチタスクで別のアプリに切り替えたら? 他にも色々考えることあるんでない
あら、やだーん
>>23 >>29 おおおー消えた!元のプロジェクトに戻った!
ありがとうございます!助かりました!
どういたしまして
まだ「onDestroy()が呼ばれないようにしたい」とか言ってる人いるのか 根本的に自分の考えが間違えているという結論には辿り着けないのかな フラグ管理って何やろうとしてるのかわからん…… 他にも「onCreate()が2回呼ばれる!この端末バグってる!」って人も見たことあるけど バグってるのはお前の頭だ、と言いたかった思い出
ちょっと試してみたけど、電源ボタンは短押しだとアプリが裏に回っちゃうからか、onKeyDownでも、onKeyUpでも、disparityKeyEventでもイベント取れなかった 長押しならOK
43 :
デフォルトの名無しさん :2013/10/23(水) 23:40:35.41
power keyって長押しでもイベント取れたっけ?
>>45 この本で一番役に立ったのはGLでもNativeWindowでもなく、Android.mkの書き方だったな。。
48 :
デフォルトの名無しさん :2013/10/24(木) 00:16:30.38
>>45 サンクス。
わし組み込み系なんだけど、組み込みandroidとか最近聞くから試しに手を出してみたんだけど、
GCが糞すぎてとりあえずネイティブに逃げて見ようと試してるんや。
でもこの感じだと、いちおうandoroidのネイティブもやってみるだろうけど、x86に逃げてしまいそうだ。
>>45 俺も持ってるわw
というかNDK本となると極端に少ないから
日本版だと2,3冊程度しかないよな
英語のでも数えるほどしかないし
いかんせんGCが鬼門過ぎる。 javaとは縁遠かったけど、あれを許容出来る用途じゃないと使えんのじゃないかと思った。
>>47 その一冊しかしらんのよ。。
おれもオススメ教えてほしい
いかにGCを起こさせないようにメモリ管理するか、あたりがJAVA特有だなーって感じ。 明示的にメモリ管理できるNative層のほうが書きやすいときもある
つーかGCは結局参照残っててメモリ維持されてたら同じだからな
というかだな文句言う暇があったら 自分がクソと嘆いてるその環境で、実に素晴らしいソフトを世の中に産出している人達 自分が不可能で出来ないと嘆いている機能を、見事に綺麗に実装している人達 そういった人達が現実にいることについて そういったアプリがストアに並んでいる事について まず1度よーーーーーーーーーーーーーーーーーーーーーく考えて見るべき
たまにでかいGCくるからなonCreateの頭で明示的に呼んでおけばいくらかましだろうか
dpとspを換算する方法を教えてください。 Android4の設定画面からフォントサイズを変えるとscaledDensityが変わるそうですが 手元のnexus7でどのサイズを選択してもdensityとscaledDensityが同じ1.3312501のまま変わりません。下記以外の他の方法があるのでしょうか? DisplayMetricsの取り方 DisplayMetrics metrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metrics); metrics.scaledDensity
>>57 activity#onConfigrationChanged
application#...
xmlのレイアウト関連で視覚的にわかり易く解説してるサイトや本はありませんか? フレームレイアウト使ってビューを重ねようとしたら、他のレイアウトが崩れてきちゃってわけわかめで。
8からついてるクライアントHYPER-V有効にしちゃうとHAXMは使用不可になるのな x86版HYPER-Vにいれないとダメか
//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() {〜〜}); とやると、スピナに選択肢選択イベント設定したタイミングでイベントが発生してしまいます プログラムから選択肢を選択する際に、イベントを発生させない方法はありますでしょうか。
63 :
デフォルトの名無しさん :2013/10/24(木) 11:37:54.62
Android Studioの質問なのでスレ違いかもしれませんが、該当スレがわからなかったのでここで質問します。
http://www.dotup.org/uploda/www.dotup.org4608669.png インストールしてプロジェクトを作成してすぐの画面なのですが、左のペインの「Project」のところに
本来ならば「myapplicationproject」に関するディレクトリや.javaファイル等が列挙されると思うのですが、
画像のようにgradle関係のファイルしか表示されません。
解決方法をご存知の方教えてください。
>>57 DisplayMetrics metrics = getResources().getDisplayMetrics();で正しく取れました
普通Configurationが変わるとActivityが作りなおされるのでイベントは関係ありませんでした
ありがとうございました
変数の代入に?や:で区切られてる構文があるんですが、分岐して代入してるのですか? ググっても見つからないのですが、なんという構文ですか?
三項演算やー
<?> ←じゃあこれはなに?
ジェネリクス
71 :
デフォルトの名無しさん :2013/10/24(木) 20:08:14.92
どうにもNDKの開発環境周りのトラブルが多すぎる・・・ CDTのCode Analysisがインクルードファイルの中を覗かずに解析するもんで declare cannot resolvedエラーがでまくるんだが、これ解決方法ある?
>>71 workspaceディレクトリを作り直す
具体的には、eclipseを終了し、現在のworkspaceディレクトリをrenameして、eclipseを起動しなおす
その後、必要に応じて、renameしたところからプロジェクトをimport
多分、workspace内の、.から始まる設定の何がおかしくなってる
面倒なので、いつもこうやって直してる
うちでは、ndkのversion up(差し替え)で、そのエラーをよく見る
三項演算子って使いどころがよくわからない if文で済ませちゃう
おれもeclipseビルドは使わずに、ndk-buildとantでやるほうがメインになってる。。 eclipseとかpluginアップデートするたびに挙動が変わるのが面倒で…
一般論だけど三項演算子はreturnのときに使うと分かりやすいかな
>>75 int a=null==b?0:c;
とか、aには必ず何か入るんだと理解しやすい。
>>76 その場合デバッグとかどうしてるの?
コマンドラインからgdb?
>>13 >>14 レス遅くなってすいません。
エミュレータを作り直したらなおりました。
>>79 デバイス使うアプリが多いから、デバッグはadb logcatに頼ってることがおおい
デバッガ繋ぐ場合はeclipseつかうよ
LAME使うと必ずソース公開しなきゃいけないの?
>>81 やっぱそうかー
マシンスペックのせいなのかeclipseでのデバッグ実行がやたらと重くてね…
もしかして、コマンドラインからの方がいいのかなと思って
ありがとう
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バージョンでこんな差がでる理由ってなんなんだろう? 端末ごとの処理系とか違うもんなんだろうか
>>85 byte[] data = new byte[] {(byte)0xEF, (byte)0xBB, (byte)0xBF};
たぶんw
>>85 if文の評価がint型として扱われてるからじゃないかな?
>>85 そういうこともあるのか
このレベルで起こる不具合の報告って該当機種持ってないと見つけられないよな
途中で送信してしまった 0xEFをキャストなし0x0EFにしても、警告がでなければ、後者と同じ動きするはず
byteが符号付でマイナス判定されるかの差じゃないの? ってもそんな最近そこの処理が変わったとも思えないが
スーパーのメンバにアクセスするときの相談です public class MainActivity extends FragmentActivity { int i; //メンバ クラス{ メソッド{ i=+10; } } } これで、クラス#メソッドのiへのアクセスは怒られると思うのですが iをstaticにするとAndroidでは初期化問題があると聞きました。 ほか、プリファレンスを使うしか方法は無いのでしょうか?
javaのbyte型の範囲って-128〜127だっけ? 0xEFって239だからbyteに入れると溢れて、-128+溢れた分の112で-17になる? だからint型の0xEFと比較すると、-17==239で条件一致しない? 端末によって動きが違うのは不明だけど、こんな感じ?
>>92 >>87 ,89だけど、間違ってた
ごめん
まず、Byte型とint型(0xEF)を比較したとき、Byte型がintに拡張される
このとき、拡張は最上位bitと同じ値で補完される(例だと1)
なので、Byte型変数に0xEFが代入されてるとき、0xFFFFFFEFとなる
ここからは予想が入るけど
直値0xEFの補完の仕方の違いによって挙動が変わるんじゃないかな?
つまり、0x00EFとするか、0xFFEFとするか
その辺の言語仕様が規定されてたかどうかは知らないので、詳しい人に任せます
結論としては、ifの中の直値をByte型にキャストするのがいいと思う
こうすることで、Byte型はプリミティブな型なので、Byte型同士の比較になって、期待通りの動きをするはず
>>93 拡張は最上位bitで補完されるってまじ?
拡張ってキャストのことだよね?
int i = 1000000000;
long l = i;
ってやると、
1000000000
3B9ACA00
111011100110101100101000000000
が
111111111111111111111111111111111011100110101100101000000000
FFFFFFFFB9ACA00
1152921504533105152
になるってこと?
>>94 符号付だから最上位ビットが符号ビットでそれで埋められる
その例だと上のほう余ってるから最上位0でしょ
>>94 intが32bit、longが64bitだったと思うけど、intからlongに変換されるとき、のこり32bitに0か1が入るよね?
このとき、int(i)の一番左端(表現としては不適切かも)の値で埋められる
0x3B9ACA00の最上位bitは0なので、0で埋められるよ
というか、最上位bitは符合bitになるので、int型の範囲内の数値をlongに入れても問題ないよ
64bit端末出たらなんか大変なことになりそうだな
キャストしてないとintの領域分だけ、byte配列値を結合して比較されるんじゃないの byte配列3つだと足りないから、29〜32bitは補完されるんじゃね 断定はできんが
この問題はjavaでは起きないはずじゃなかったっけw ってジャワ信者が言ってたけどなwww
book.mycom.co.jp/support/pc/gles2/#CODE ここのサンプルのGL20ModelEx3のドロイドのモデルをドラッグで移動させたいのですがどうすればよいでしょうか
誰か91に答えてやれよw 俺には何言っているのか良くわかんねからパスだがw
内部クラスもスコープもろくに理解してなさそうなのに、 自信有りげに、staticの初期化時期の問題とか Preferenceとか言ってる感じからして、説明しても無駄。
そもそもスーパーのメンバの話じゃなさそうなんだが
105 :
デフォルトの名無しさん :2013/10/25(金) 23:57:33.81
先週、surface pro 2を検討した者です。128GBモデルを買いました。 Windows8.1に慣れないのでいろいろ苦労しましたが、Nexus7での実機デバックができるようになりました。 あとエミュレータのほうはかなりカクカクします。 またマウス、キーボードに勝る入力方法は存在しないと実感しました。 私の総合評価は80点くらいです。
>>105 自己レスですが、ちょっとした編集なら問題ないですよ、寝ながらプログラミングできます。コード見るのもフリック操作でできます。
>>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;
}
}
}
C言語っぽい話してるなーと思ったら
やっぱり出た!C言語おやじ!まだいたんだなアンタ
>>99
>>85 下のdataインデックスが3になってるからじゃねって事は無いよな
javaのintは32bit固定なんだな
111 :
デフォルトの名無しさん :2013/10/26(土) 09:05:35.60
自分のapk内のActivityを全部終了させて アプリを終了させるボタンを作りたいのですが、 どのように書けば良いのでしょうか? Activityを遷移する都度 .finish() で終了させてしまうと [BACKキー]で戻ることができなくなるため好ましくありません。 よろしくお願いいたします。
>>111 ApplicationインスタンスあたりにActivityのList持っといて、onCreate()のたびにキャッシュしとく、とか?
>>111 Activityを遷移する都度 .finish() で終了させてしまうと
[BACKキー]で戻ることができなくなるため好ましくありません。
っていうのが良く分からないけど、
Activity1→Activity2→Activity3って遷移してActivity3でアプリ終了ボタンを押す
Activty3でリザルトintentにアプリ終了するよん。っていう旨の情報を設定してfinish
Activty2のonActivityResultでレスポンスintentにアプリ終了するよん。っていう旨の情報があったら即finish
Activty1のonActivityResultでレスポンスintentにアプリ終了するよん。っていう旨の情報があったら即finish
じゃだめなの?
>>85 このコードで端末ごとで違いが出るか?
&で処理すれば済む事でもある
>>114 出てしまったんだなこれが。
エラー報告めっちゃ届いてて、よく見たら(byte)にキャストし忘れてたけど、多分これが原因じゃないよなー
って一応直してユーザにアップデートさせたら、エラー報告がぱったり無くなった
>>115 それは面白い
bye型にunsignedがないのに不思議だし、端末によってというのがさらに不思議だ
>>85 これ、原因を考えるなら、リバースエンジニアリングして、smaliでどうなってるかを見たらいいかも?
>>107 ありがとうございます。
僕も動くと思ってやったので疑問です。
実際はインナークラスのメソッドでクリックリスナーをセットしてonClick内からの、外部メンバの参照です。
public class MainClz {
private int cnt;
public MainClz(){
button.せっとくりっくりすなー(new Clicklistener{
@Override
onClick(){
cnt = 0;//staticちゃうやんけカス
}
});
}
}
>>117 同一apkで端末によってならVMの解釈側じゃないかね?
>>118 リスナーはどこから呼ばれうるか考えろ
>>105 Sureface 使ってるけど、たまにエミュ起動しなくない?
>>85 どう考えてもありえないな
端末側にそんなバグがあるのなら色んなアプリで症状が出てるはず
>>118 問題ないないだろ?
cntは本当にMainClzのメンバか?
>>121 バグっていうか
>>93 が言ってるみたいな、端末仕様のしっかり固まってない細かい部分の差なんじゃないのかね
>>123 言語仕様の問題でしょ
だから実現するなら端末のバグ
>>118 cnt = 0;
を
MainClz.this.cnt = 0;
にしてコンパイルエラーになるならどっか問題ある。ClickListenerが実はcntというメンバを持ってるとか
内部クラスから親クラスのメンバにはアクセスできるはず・・・
Androidアプリ内のWebViewにAdSense張っても(残ってても)問題ないですよね?
>>126 規約違反の広告会社が多いと思うぞそれは
リファラおかしくなって調査されるだろうし
>>85 検証してやろうと一行目コピペしたらキャストエラーじゃん原文載せろよ
まあいいキャストしなおした当然falseだったISW11M
>>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 byte[] work = new byte[1024];
単に直値0xEFがどの型で扱われるかに変更があったってだけでしょ
ちげーよ機種によって挙動が変わるのがもんだいなんだよ
直値(定数)は、 private/public static final byte 名前 = (byte)0xEF; を使うようにしましょう または、bit演算で必要なところだけ切り出して使いましょう
>>134 端末のせいではなく、
コードが悪いだけのはず
137 :
129 :2013/10/26(土) 15:40:38.76
byteを符号付intに格上げして比較だからfalseで正常かと思ったがbyteって符号無しなのねうーむ
>>136 お前は半年黙ってろ
ググッたら符号有りじゃんw
いつから符号なしになったの?
>>140 だから、問題提起した「カスのコードが悪い」にキマリだな
>コードが悪いだけのはず "はず"ってなんだよ予想で語るな馬鹿、返事はいらねーからな
if( data[0]==0xEF && data[1]==0xBB && data[2]==0xBF ){ これが通るってのは元の配列の中身が違うだけじゃないか? data = (byte)0xEF if(data == 0xEF) これぐらい簡単にしてその端末で通るの?
charが符号無しじゃね
C++プログラマの自分は「&」を使うのが「常識」だけどな ジャワさんはレベルが低いからしょうがないかwww
まさにカオス
結局一致条件で(byte)0xEFと比較するようにすれば今んとこ全端末で問題なかったんですけどね
152 :
デフォルトの名無しさん :2013/10/26(土) 17:09:30.42
アプリを再起動する関数を作っていますが、 呼び出す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 :
152 :2013/10/26(土) 17:17:45.51
すみません、色々試していて混乱していましたが、 ただしくは以下の動作でした。 (1) MainActivity -> Activity2 -> ここで実行 -> MainActivity --[BACKキー]--> HOME画面 (2) MainActivity -> PreferenceActivity, ここで実行 -> MainActivity --[BACKキー]--> MainActivity --[BACKキー]--> HOME画面 この動作の違いに困っています。 よろしくお願いいたします。
>>154 個人的にはその127までのByte型に0xFF突っ込める時点で駄目だと思うんだけどな
>>151 >>(byte)0xEFと比較するようにすれば
>>0xEFと比較するようにすれば
同じはず
他に原因があるんだろうな
OSが2.3と4.0ってのも
>>155 >>個人的にはその127までのByte型に0xFF突っ込める時点で駄目だと思うんだけどな
無能をさらけだしてるぞwww
0xFFがjavaでいくつになるか調べてごらんwww
>>153 MainActiviyのlaunchModeをsingleInstnceにしたらどうだろう?
その辺はフラグとの組み合わせでいろんな動きするから、色々試してみたら望みの動きするかも
unsignedがないのが一番悪い そもそもjavaに期待は一切してないが
>>158 少なくともSDK4.2.2で試した限りだと
0xFFはint型と判断されるから10進だと255だな
byte型に代入して、その変数をそのまま評価すれば符号付だから-1
int型にキャストした場合上が符号ビットで埋められてやっぱり-1
普通に0xFFでマスクしてやれば符号ビット消えるから255になるけどな
型と変数とリテラル ちゃんと分けて考えろ
なんでJAVA ってunsignedを作らなかったのだろう。 めんどくさかったのかな。
作る分は無くても困らないが移植性は下がるな
165 :
153 :2013/10/26(土) 18:23:17.84
>>159 ありがとうございます。
launchModeというものを初めて知りましたので
色々と試してみます。
正直、byteはunsignedだけでいいと思う。 バイト列いじるjavaコードの可読性の悪さは異常。
>>163 C++ の反省から極力シンプルにしたかったんでしょ
しかしコードは複雑化
一人のクソコードから盛り上がってますね 端末で違いがあるって…呆れる
草はどうしたずっとアホみたいに笑ってろよ
>>6 自己レス。
結局、バーコードリーダーが必要な時にenable、入力が終わったらdisableっていう泥臭いやりかたになった。
再接続時の微妙な待ち時間が惜しい。
Disableの度にactivityのonCreateから処理が始まって非常にうざかった。
でかいgcが走るから仕方ないのかな?
>>157 みんなこれ華麗にスルーしてるけど、
俺もこれが原因だと思うんだがどうよ?
evoとevo3Dしかないけど試してみようか?
GooglePlayに有料で売りだした自分のアプリを消すか非公開にする方法を教えて下さい
非公開にする
リストビューをカスタマイズして、チェックボックスをつけたのですが、スクロールするとチェックしていない行にチェックがついてたり、挙動がおかしくなります。 内部的には、その行にチェックがついてるみたいなので、描画関連がおかしいみたいですが、そういう事例ありますか?
>>175 2.3なら問題ないのに
4.xだとそうなる。
っていう問題なら俺も出てるな。
自分だけ用のもの(公開していない)
にしか実装していないから
真剣に調べてないけど。
ウェブ上にのってるソースをコピペしたら、 著作権侵害になることありますか?? なんか神経質に心配になってきました。 解説サイトでもなんでもです・・・・。 僕は強迫神経持ちです。
>>176 チェックを保持して、getviewの際にsetし直すようにしました。
多分、単純ミスでした。
>>177 なることはあるだろ。
ポリシー表示による。
>>177 そんな心配は著作者にも知れ渡るような秀作アプリを開発できてからにしろ
>>177 > 著作権侵害になることありますか??
「なることは」あります。
>>85 >>130 >> if (data[0] == 0xEF && data[1] == 0xBB && data[2] == 0xBF) {
>> // Xperia AX:通る
>> // Xperia Acro:通らない
>> }
このif文が通る処理系なんて存在しないと思うんだけど
ほんとうにXperia AXは通るの?
単にBOMがついてなかっただけじゃない?
>>182 >>このif文が通る処理系なんて存在しないと思うんだけど
とりあえずjavaではね
>>85 >> byte[] data = new byte[] {0xEF, 0xBB, 0xBF};
おぃおぃ、この時点でエラー出るじゃん(笑) ※intからbyteには変換出来ません
みんな
>>85 に釣られちゃったねぇwww
>>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;
}
}
答えは?
a=?
b=?
>>85 お疲れ様でしたwww
いつまでひっぱんだよ
「機種ごとに動作が違う」ではなくjavaの仕様外の動作なんだから、さっさとメーカーに文句入れろ。
>>177 APLなら問題無し、ウェブ上に載ってるコードだって
結局サンプルコード的なものなら問題無し。
この前、ちょっと解らないとこがあったので
Androidのサンプルをウェブで探してた時
「クラスなのにコンストラクタが無い!」
とか書いてるページがあって
心の中で「デフォのコンストラクタが書いてないだけで
存在してんだよ」とつっこんで、そのページはすっ飛ばした。
Web上にはGPLなコードがいくらでもあるわけだが。
基本そのままコピペしたら著作権侵害だよ
0xEFなんて書き方してるから分からないのか? if (data[0] == 0xEF && data[1] == 0xBB && data[2] == 0xBF) { は if (data[0] == 239 && data[1] == 187 && data[2] == 191) { でしょ? byteの範囲が-128〜127しかないんだから 結果が真になるわけがない
>>193 「なのに端末によって違う」 ってウソ吐いてる事が問題
>>193 茶化しぬきにこの発想は感心した
byte型を10進で考えたことなかったから、目から鱗だわ
試してないが、(byte)-17==(byte)239は真になるのかな?
応用すると、apk割り対策とかにも使えそうだね
いや使えないだろ 何をどう思ったのか分からんが
(byte)239って書いたらエラーじゃね
>>197 エラーにならないよ
(byte)0xEFと同じ
>>184 なるほどな
85のやろおおおおおおおううううううううううううう!!!
>>197 エラーじゃない
(byte)0xEFでも(byte)-17でも(byte)239でも全部同じ
比較してももちろんtrue
リテラル値やキャストなんて、基礎もいいとこ
基盤があやふやだと、色んなところで躓くよ
>>198 そんなこと書いてない
特定のActivityにしかアタッチされない場合には、その方法でもできるし、コードが短くなる
そいや昔、ループタイマーを加算していくと いずれオーバーフローして負の値になること忘れていて バグった思い出があるな
>>intからbyteには変換出来ません intをキャストする事自体が 低レベルプログラマ って事だな
byteよりint型のほうが処理が早いというイメージが強いせいか 0x00-0xffまでの値を扱うときでもintを使ってしまうことが多い。 intで扱ったデータをバイナリ展開するとき、当然byte型に型変換するわけだが それってやっぱ低レベルなのかね。
と思ったけど、よく考えるとjavaってbyte型も内部ではint型として扱われるんだっけ? 速度差はないのかな,よく知らん。
207 :
デフォルトの名無しさん :2013/10/27(日) 21:22:12.07
Drawable drawable = getDrawable(); if (drawable != null) { textView.setBackgroundDrawable(drawable); } という部分があるのだが、 setBackgroundDrawbleのところで NullPointerException が発生する。 drawableが非nullであることを確認しているのに。何これ。
208 :
207 :2013/10/27(日) 21:23:53.45
はぁぁ分かった。 リファクタリングのせいでTextViewのIDが変わっちゃってたんだ。 アホらし。
>>206 booleanもintで比較してる
javaのintはワードではないし、
ネイティブコードではないので挙動は不明
windows8.1にアプデしたらエミュレータでwindowsが落ちるわ eclipseが休止状態から復帰後立ち上げるとフリーズして再起動必須になるわ ほんとwindows8.1は糞すぎる
俺も8.1だがそんな症状一切ないぞ
全員出るor出ないならいいんだよね まぁ全員出るならそれはそれで大問題になってるだろうけど 特定の環境でおかしくなるってのが一番やっかいだから
>>210 ごみPC捨てろw
うちも8.1にしたが快適に使えてるぞ!
かえって速くなったくらいだよ!
要約すると8.1がクソなのではなく
>>210 がクソってことだな
いや8.1もかなり酷いぞ 少なくとも企業で採用はない
てか専用ソフト使う業種で新OSにする奴おらんだろ まあ趣味でやってるならドンマイとしか
>>215 > 少なくとも企業で採用はない
当たり前だ
採用するかどうかの評価時間が要るから
まだまだXP・SP3で行けそうだな 認証も不要だし
for (int eventType = xmlPullParser.getEventType(); eventType != XmlPullParser.END_DOCUMENT; eventType = xmlPullParser.next()) { switch (eventType) { case XmlPullParser.START_TAG: String tagName = xmlPullParser.getName(); if (tagName.equals("itemName")) { xmlPullParser.next(); if (xmlPullParser.getEventType() == XmlPullParser.TEXT) { tytletext = xmlPullParser.getText(); } } eventType = xmlPullParser.next(); } } } catch (Exception e) { tytletext = "見つかりません"; } このコードがOS4.0以上で動きません どこを修正したら良いかご教授下さい スレ違いだったらスルーお願いします
宿題はスレ違い
222 :
デフォルトの名無しさん :2013/10/28(月) 10:27:58.48
>>219 です
見なおしてみたらなんか中途半端な部分のコード貼っていますねorz
2.3.3エミュでは動きました
QRコードから楽天apiで商品名を検索して表示するアプリを作りたいんですが
正確には動かないというよりは
上記コードでは4.xだと例外処理されます
UIスレッドでインターネットアクセスしてるとかじゃないよね 2.3と4.0でありがちな違いで、ぱっと思いつくのこれしかない
更新される可能性があるDBをリストビューに表示する場合、他アプリケーションなどから更新されたデータを関知して、リストビューに反映するにはどのような方法を取るのが一般的ですか?
複数アプリで一つのDBファイルを操作する可能性があるってこと? Root端末じゃないと他アプリのデータ領域にあるDBファイルにアクセスできないと思うけど。 Root端末ならインターバルタイマなり画面更新タイミングなりで、DBファイルの更新時間を見ればいいんじゃないかね
>>225 androidの基本システムで持っているデータです。
例えば、連絡帳とかですね。
電話帳関連てContentProvider使うんだっけ? final Cursor c = getContentResolver().query(Contract.TABLE1.contentUri, null, null, null, null); c.registerContentObserver(new ContentObserver(new Handler()) { @Override public void onChange(boolean selfChange) { }); とか?他アプリからの変更で発火するかは知らん
>>226 一般的て
相手がContentProviderなら標準API使えばいいんじゃない
あ、やり方知らないってだけかw なんか仰々しく考えちゃった ContentObserverでググれ
>>229 ありがとうございます!
調べてみます!
231 :
デフォルトの名無しさん :2013/10/28(月) 18:00:38.17
ロック画面に置けるウィジェット作るのって android:initialKeyguardLayoutでロック画面用のレイアウト指定出来るのは分かるんだけど RemoteViewsから更新したら結局ホーム画面用のレイアウトが適用されちゃう ホーム画面とロック画面、両方に置けるけどレイアウト変えたまま更新したい時はどうすればいい?
それを考えるのがプログラマーの仕事です
ウィジェットのIDで分ければいいことじゃないの?
ホーム画面のウィジェットのプログラム作りたいのですが ウィジェットだけだと、サンプルプログラムすらもってこれないのですが どういうキーワード使えばいいですか?
SDK付属のサンプルじゃいかんの?
質問ですが、メニュー項目が10個あり、6個目からはリスト形式で表示されますが、 そのリストに関して、タッチしてもたまに反応しないのですが、何が原因なのでしょうか?
手垢
指が臭い
変な回答は無視してStackOverFlowで聞きなよ
ちょっとふざけ過ぎな気はするが、質問の仕方もよろしくないだろうよw
>>236 もうちょっと詳しく書けないの?
それだけじゃ、判断しようがない
オプションメニューなのかコンテキストメニューなのか、それとも独自でメニュー画面を組んでるのか
あと、リストって何なの
見た目の話なのか、adapterとかlistviewの事なのか
答えられる、答えられないは置いといて
もうちょっと質問の内容を絞ろうぜ
>>222 例外入るって分かってるならExceptionでまとめずなんのエラーかまず調べなよ
>>223 にあるようにネットから情報ひっぱてるならNetworkOnMainThreadErrorじゃないの?
みんなちゃんとエラーログ見てくれたら質問の半分は無くなるんだけどね! てかテンプレに入れてもいいわ
フレームワーク飽きたから気分転換に数当てゲームのAI作ったら難すぎワロタ まだ、数時間なのになんて可読性悪いコードなんだ。 将棋の評価プログラムなんか、どうやって管理してんだ。
見たことないエクセプションでも、まんまコピペでググるだけで結構解決する事あるしな
lisitview#getView() の中のエラーは初心者殺し
サービスを使ってある日付時刻になるとネットから情報を 取ってきてDBに登録しようとしているんですが、コード上で Calendarクラスのインスタンスをスレッド上でwhile(true) の中で生成し続けてたら、うんともすんとも動かなくなりました。 やっぱ、(new Date()).toString()で、Stringを分割して解析する しか無いでしょうか。 それとも他に良い方法が有ればご教示願います。
>>247 new Date()したらインスタンス生成することには変わりない(しかもtoString()で文字列オブジェクトも作ってるし)ので、
System.currentTimeMillis()で何とかするとか?
でも、根本的にスレッドを扱うスキルが足りてないと思う。
IS11caで実機テストを行いたいのですが、eclipseが認識してくれません。 ドライバはインスト済みでwindows側からは認識されています。 原因としては何が考えられますか?どなたかお力をお貸ししてくださいm(_ _)m
>>249 端末がデバッグモードになってないとか?
>>223 >>242 遅くなりましたがレスありがとうございます
確かにNetworkOnMainThreadErrorでした
別スレッドで処理させたらあっさり動きました
初心者丸出しの質問に答えてくださってありがとうございました
>>250 デバッグモードonとサードパーティアプリ許可の設定は済ましています。
たった今USBを繋げ直したらデバイス欄に実機名が点滅表示し始めました・・・
普通は点滅しませんよね?
>>252 ドライバーが怪しそうだけど、再インストールやってみた?
あともう一つがadbの暴走
eclipseのDDMSパーペクティブとddmsバッチの両方を起動したりときに、adbプロセスが暴走したのか、接続できなくなる事があった
タスクマネージャでadbプロセスが3つ以上あるとその可能性があるかも
その時はddmsとadbプロセス全部落とした後、adb kill-server 実行して、adb start-server やったら回復した
デバイス認識がどうなってたかは確認してないから、断定はできない
>>247 Calendarクラスがスレッドセーフじゃないことに起因しているかもね
>>253 返信ありがとうございます。
アプリ開発初心者でddmsとadbがよく理解できていません。。。もう少し勉強しておきます。。。
>>255 あんまし難しく考える必要はない
厳密に言うとちょっと違うんだけど、PC側にはadbのクライアント、端末側にはadbのサーバーがいて、アプリのインストールしたり、端末にコマンド送ったりしてるイメージをつかんでいればOK
adbの操作は、コマンドラインからも実行可能
eclipseも裏ではadb接続して色々上手いことやってる
ddmsは端末の状態を見ることに特化してるツールって感じ
これもadbつかってる
デバッグの助けにはなるから、勉強しておいて損は無いと思うよ
>>252 同様の点滅状態になったことあるけど
そのときはUSB側の問題だったな。
USBハブを介しているなら
ハブをやめてPCに直結するか
バスパワー式のにするか。
それと、ケーブルの確認。
258 :
デフォルトの名無しさん :2013/10/29(火) 18:02:29.55
ブラウザから起動したくて、カスタムURLスキームからの起動を作っていますが、うまくいきません そもそも他のアプリの起動はうまくいくのか?と思ってブラウザからcomgooglemaps://でやってみたけど起動できませんでした よくぐぐって調べてみたら、GoogleマップのこれってiOSのみの機能なんかな? 主なAndroidアプリの起動URLをまとめたサイトとかないでしょうか? 散々ぐぐったけど何故か出てきません
>>258 俺も探したけど見つからなくて、結局有名どこのapkを逆アセンしてマニフェストから読み取った
すげー面倒
なるほどw 仕方ないので、俺もそれやってみます、確かに面倒すね…
>>244 ゲームなら限定的なスクリプト言語を実装して、その上で数当ての思考パターンのみに集中して記述するとか。
本格的な学習型のAIなら、パターンの記憶をして、好手の評価をするとか。
263 :
257 :2013/10/29(火) 20:02:58.63
訂正 文中のバスパワー式はセルフパワー式の間違いです
最近『EclipseではじめるAndroidプログラミング入門』って本読みながら 始めたんですけどウィジェット使うにあたって super.onCreate(savedInstanceState); のところで savedInstanceStateを変数に解決できません というエラーが出て実行できません。 ググっても適当な答えがなかったんですが これはどういったエラーなんでしょうか?
onCreateの引数名savedInstanceStateになってるか?
267 :
265 :2013/10/29(火) 21:36:34.15
確認したら saveInstanceState になってました 直したら実行できました、ありがとうございます
('A`)
('A`) 人に訊く前にもっと時間をかけて悩む癖を付けた方が・・・ 数学の問題集とかも、数秒考えて分からなかったら答え見るタイプなんだろうな。
レスをする前によく考えた方が、あれ、あってるな
インストールしやすくなって間口広がったからなぁ
初めてのプログラムがAndroid。そんな時代になったのか 俺もガラケーアプリからだったから似たようなもんだ わからないところはどんどん飛ばして、飽きる前に何か作れるよう頑張れ
俺もJavaはAndroidからだぜ
俺は風呂釜洗浄のやつがはじめてだったな
Eclipse 涙目
俺は大塚製薬のシンビ〜ノかな
自分のアプリを、ホームアプリにはXYと表示させて、 Actionbarの題名部分にはABXYと表示させて GooglePlayにはABXYと表示させることはできますか?
それを試行錯誤して実現するのがプログラマの仕事です
できるよ
標準Youtubeアプリで、動画を下スワイプで小さくしたあと横スワイプすると音が小さくなりますがどうやって音量を変えてるのでしょうか?
アプリ作るのめっちゃ時間かかるんだけどー(>_<) 初心者だからまぁ仕方がないけど、 リストビュー作るのとか、 あれー?アダプター?みたいなー。 何回もやってるハズなんだけどね。 もー、まいっちんぐ。
自分で使いやすいようにカスタマイズしたクラスを作ればいいだけ。 そういう蓄積が無いからいつまで経っても時間がかかるんだよ。
コピペだとメンテがメンドイ。
カメラ作ってって例外がうまくいかないのだけれど どうしたらいい? このコードでカメラ二重起動させると例外処理に飛ばず ダイアログが出ずに先に起動したカメラアプリが落ちるんだけども そもそも例外処理が間違っている? public void surfaceCreated(SurfaceHolder holder) { try { mCamera = Camera.open(); } catch (RuntimeException runtimeexception) { new AlertDialog.Builder(getContext()) .setMessage("Hello, Wolrd!") .setPositiveButton("OK", null) .show(); finish(); } try { mCamera.setPreviewDisplay(holder); } catch (Exception exception) { mCamera.release(); mCamera = null; new AlertDialog.Builder(getContext()) .setMessage("Hello, Wolrd!") .setPositiveButton("OK", null) .show(); finish(); } }
ダイアログの使い方が間違っていたので直してみた 今度はこのアプリ自体が強制終了するようになってしまった new AlertDialog.Builder(getContext()) .setMessage("Hello, Wolrd!") .setPositiveButton("OK", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { finish();} }) .show();
>>287 これはひどい…。
・Androidに限らず、GUIのプログラムにはイベントループってものがあって、ダイアログのshowや、アプリのfinishとかのメソッドはその場で処理されずに、スケジューリングされるだけで実際の処理は次のイベント処理機会(つまりsurfaceCreatedメソッド終了後)に実行される。
・また、ダイアログのshowの処理はダイアログを表示するだけで、ユーザーがボタンを押したりしてダイアログを閉じるまで待つわけではない。つまり、showの直後にfinishをよぶと、ダイアログを表示して直後にアプリが終了する。
・さらに、finishはその場でアプリを終了するのではなく、終了をスケジューリングするだけなので、surfaceCreatedメソッドの実行はそのまま続く。つまり、最初のcatchの中でfinishしても、次のtryの中身が実行される。
・ってか、問題は二重起動なのか…。ってことは、mCameraにすでに値が入ってるのにこのメソッドご呼ばれて新しいカメラをopenするのが問題なので、このメソッドの最初でmCameraがnullじゃなければreturnするとか、そもそもこのメソッドが二重に呼ばれないようにするとか…
うーん、 カメラアプリ(1)を開いた状態でほかのカメラアプリ(2)を開く場合、 後者のカメラアプリ(2)にはどうやって(1)がカメラ使用中だよって伝えればいいの? よくあるカメラ取得時の例外処理ってこのためじゃないの?
>>290 あー、他のアプリがカメラ使用中の場合は例外をチェックするしかないってことか。
それなら
>>289 の最後の項目は取り下げ。前3つをよく読んで例外処理をちゃんとすべし。
>>288 んー
よくわからんが、MainActivity(まぁ名前は、何でも良いけど)
中で全ての処理をしてんの?
もし、そうならアプリが終了してあたりまえなんだけど
>>287 ダイアログのボタン処理の中にfinish()入れて家政婦はミタ
アイアログの直後のfinish()はダイアログが表示される前に終了するか、見えても一瞬で終了する
>>このコードでカメラ二重起動させると例外処理に飛ばず
>>ダイアログが出ずに先に起動したカメラアプリが落ちるんだけども
先にカメラを奪ってるアプリが落ちるはずがない
MainActivityの中で処理してる
>>289 わかりました
とりあえずこうしたら起動したがわのアプリがまだ強制終了する
finishを使わないでreturnするべき?
public void surfaceCreated(SurfaceHolder holder) {
try {
mCamera = Camera.open();
mCamera.setPreviewDisplay(holder);
} catch (IOException ioexception) {
new AlertDialog.Builder(getContext())
.setMessage("Hello, Wolrd!")
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int whichButton) {
mCamera.release();
mCamera = null;
finish();}
})
.show();
}
}
>>294 >>mCamera.release();
>>mCamera = null;
いらんだろ
296 :
デフォルトの名無しさん :2013/10/30(水) 13:39:37.92
AlertDialogのTitle領域にボタンを設置したいのですが、 (1) SDKに用意されている標準のAlertDialogで可能でしょうか? (2) 仮に(1)がNGの場合、AlertDialogから独自Dialogを作れば可能でしょうか? 可能な場合、検索キーワードや方法など ご教授いただけないでしょうか。 AlertDilaog、ダイアログ、タイトルにボタン、setTitle、Button など色々と検索していますが、 Action BarにButtonを配置する方法しか 見つかりません。よろしくお願いします。
>>296 無理やりできないこともないがおすすめできない。
AlertDialogは端末ごとに見た目が違うからボタンはめ込むと浮くし、Dialogを継承して一から作ったほうが楽。
例えばスケジュールとかである期間中のフラグを取りたいとき 期間中の時間をそのままで現在と比較するのと (期間中の時間HH0 と現在の時間 HHなど) ミリ秒に変換して比較するのではどちらがスマートでしょうか? というかどちらが定番でしょうか?
>>296 AlertDialog.Builder#setCustomTitle
>>298 ミリ秒。日付が違ったり、Timezoneや夏時間が絡むと面倒でしょ。
メモリ上にある16色bitmapデータを描画ってどうやれば良いんでしょうか? ARGB8888とかにごりごり変換するしかないんでしょうか? ググっても良くわからず。。
16色分パレット配列作っとけば簡単に変換できんじゃね
>>298 ミリ秒云々よりも、UTC時刻(だっけ?)で扱った方が、海外ユーザなどtimezoneをまたいだときのことを考慮しやすい
-> 自然とCalendarクラスやgetTimeInMillisを使う機会が増える
結果として、ミリ秒で扱う事が多いだけではないかな?
不要なら、ミリ秒は落とせば(0にする)いいし
>>303 やっぱりごりごり変換しないと描画出来ないんですかね。
ギャラリーとかだと普通に16色bitmapが開けるんで、何か方法が有るのかなと想像してたんです。
306 :
296 :2013/10/30(水) 21:19:10.89
>>297 ,299
お二方、ありがとうございます。
setCustomTitleなるものがあるとは、見つけられませんでした。
>>297 さんのアドバイスも考えながら、検討したいと思います。
まったくの初心者です Eclipseで新規作成するときにAndroid projectがなく、似たようなものに ・Android Project from Existing Code ・Android Application Project というのがあるのですがどちらかがAndroid Projectなのでしょうか? 見当違いでしたらすみません
>>307 > ・Android Application Project
空のプロジェクトならこっち
てか、まんま、英語で書いてあるじゃない
>>309 悪いこと言わないからさ
「まったくの初心者」と自覚しているのであれば
金出して本買った方が良いよ。
ネット上の情報って
個人がなんの責任も持たずに書いているものだから
どのバージョンの情報なのかとか
そういう重要な部分が欠落しているだろ。
そのURLの情報も古いものだし。
繰り返すが、
ネット上の情報を取捨選択できるレベルになるまでは
おとなしく本で学んだほうが良いと思うよ。
本の情報も既に古くて正しくないことも多いけどな・・・
URLのサイト見てきたけど、ちょっと情報が古すぎやしないか? 読み替えればHello world表示くらいならすぐできるとは思うが…
BluetoothのSPPを利用して複数台と通信したいと思っています 1台の接続を完了させたあとに次の台を接続させるということらしいので、 とりあえずサンプルアプリのBluetoothChatを改造して実現させようとしましたが、 2台は確実に通信できているのですが、それ以上は無視されるようで接続できません どのあたりを変更すればよいのか、よろしければご教示お願いします UUIDの部分は00001101-0000-1000-8000-00805f9b34fbに変更してあります
同時に複数台とって事だよね? Bluetooth通信経験ありでBluetoothChatのソースは読んでないって状態での推測だけど acceptで通信socket取得した後で待ち受けてた方のsocketをcloseしてない? 再度acceptさせれば受け付けるだろうけど 同時通信するなら接続socketの管理もおそらく修正が必要だろうと思う
サービスは、独立さした存在としてバックグラウンドで、実行 さしといて、必要なときに対象のアプリにたいして 命令を送るものなのでしょうか。 それとも、同じapkに入れて実行させるのが良いでしょうか。 どなたかご教示願います。
>>315 前半と後半で質問の種類が違うような気がするんだけど、共通のバックグラウンド処理は単独のサービスアプリとして存在させた方がいいのか、それとも各フォアグランド処理と同じアプリ内に入れた方がいいのか、と強引に解釈した
フォアグランド処理との依存関係とかサービスの仕様によるんじゃないでしょうか
解釈違ったらごめん
>>313 BTは基本1対1の通信規格だ
その都度、OPEN,CLOSEしなされ
>>313 自分が外部計測器と接続した時に複数接続する場合の記述を見た事がある
ググってね
>>317 いいかげんな事を言うねぇ
>>311 初版がいつなのかを見るだけでしょ。
どんな書物にも必ず書かれている。
このスレはわざと嘘書いてる奴粘着してるから注意した方がいいよ 少なくとも自分で確認可能な情報書いてないなら無視
bluetoothはググればすぐ見つかる ここに書いてる時点で探し方が甘いと言える
textviewを2つ横に並べたんですが以下のようにgravityを設定すると textview1もtextview2も文字が中央寄りになってしまいます しかもtextview1は上部の背景の色がかけて白色になってしまいます どこかおかしいでしょうか? <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <TextView android:id="@+id/textview1" android:layout_width="0dp" android:layout_height="50dp" android:layout_weight="3" android:textSize="20sp" android:gravity="left" android:background="#6e000000" /> <TextView android:id="@+id/textview2" android:layout_width="0dp" android:layout_height="50dp" android:layout_weight="1" android:textSize="20sp" android:gravity="center" android:background="#6e000000"/> </LinearLayout>
>>324 layout_gravityも指定してやるか、TextViewの幅をmatch_parentにしたらいけるんちゃう
layout_gravity指定でできました ありがとうございます
html拾って、あえてtextviewに表示する。 そのとき、Html.fromHtml使うけど、<span>が認識されないタグ。 spanをreplace系でdivに書き換えるのがベスト? もっとスマートな方法があれば教えてください
>>329 「<span>が認識されない」ってどういう意味?
<span style="...">とかしてもstyleが効かないってこと?
styleはCSSだけど、Html.fromHtmlはCSSには対応してないよ。
>>330 spanで改行されるだけでいいんです。
spanはインライン要素なんだが…
>>323 decodeByteArrayに流し込んだら出来ました!
ありがとうございます、助かりました。
javaって難しいですね。。
>>333 Javaが難しいんじゃなくて、プログラミングってのはもともと難しいものなの。
335 :
デフォルトの名無しさん :2013/11/01(金) 12:00:21.26
えぇっ!?
>>334 C言語ならUIからドライバ開発まで経験有るんですが。。
今回のもやってみたら動いた、ってだけで、こんなのどこに出来るって書いて有るんだ?
って感じでした。
>>336 言語も仕様も開発環境も違うのだからしょうがない
自分も慣れるまで結構苦労した ポインタ、define,、構造体...
慣れた今では開発速度はC・C++時代に比べて超高速になったけどね
Android初心者なのですが Context はどのようなところで使うべきなのでしょうか。 本などだと解説されていなくて、
解説されてる本を読め
>>338 ほかのactivityを呼ぶときとかファイルに保存するときとか、普通にコードを書いてたら必要になるじゃん。
俺もよくわかってなくてアプリ作ってるけど Contextに何が入ってるの?
夢と希望
クラス階層見たらわかる たんなるベースのクラスってだけ
>>343 ベースクラスのオブジェクトじゃなくて?
愛と勇気
「友情」「努力」「勝利」
やさしさ
レモン3個分のビタミン
>>345 マジレスすると、リソースとかにアクセスするための共通のメソッドやデータが入ってる。
けど、クラスを分けるとわざわざあちこちに持って回らなきゃいけないし、
サブクラス(アクティビティかサービスか、とか)によって挙動が違うことがあるような気もするし、微妙な設計だよなぁ。
FeとCaとMgとZn
>>341 原理的な話しは抜きにして今すぐ嬉しいことだけ言うと、スタイル情報とかが入ってる。
特にViewはContextからスタイルの実態を取得するため、どのContextをViewやInflatorに渡すかによって見た目が変わってしまうことがある。
例えばApplicationContextはActivity固有のスタイルを持っていないし、Dialog#getContext()が返すContextはDialog固有のスタイルを持つ。
もしもcontextの意味を知らなかったら英和辞書で調べる。 そうすればActivityやApplicationやServiceが Contextを継承していることの意味、 画面が回転したときにActivityが破棄されて 別のリソースが読み込まれる動作が理解しやすくなると思うw
文脈
>>353 そうなのか
知らなかったよ
ありがとう
はぁー となりの4人席に座っていた爺さんが 煙草を吸ったせいで 服ににおいがべっとり付いてしまった。 マジで煙草はなくなって欲しい。 爺さんが肺癌で死のうが勝手だが 他人にまで迷惑かけんなよな本当に。 と、プログラマの中にも煙草吸ってる人がいたら 是非やめてくれ。 お前のためではなく、周りの人のために。 お前が死のうが関係ないけど、 独りで勝手に死んでくれよな。
真板って何だ?
俺も煙草のにおいがスーツに付くのが嫌だから 会社から直行の飲み会(つまり、平日にある普通の飲み会)は 全部理由つけてキャンセルしてるわ。 禁煙の飲み屋なんてそうそう無いし、 幹事はそんなこと気にしていられないしね。 スーツで飲み屋に行ったが最後、 クリーニングに出さなければならなくなる。 同じ理由で、自宅で洗濯できないコートなどを着る 冬場の飲み会も行かないな。 あ、これは休日の話ね。 休日はスーツではないから、冬以外は飲みに行ってる。
喫煙所から戻ってきた同僚のはく息が臭いってのもあるな。 当人は「喫煙所で吸っている」のだから、 何も悪いことはしていないと思っている。 その通りだから、俺も強くは言えない。でも臭い。辛い。 総務に相談しても、 「そればっかりは・・・」という対応されたし。
真板で通じると思っているのか。。。 いや、通じないことを前提に書いているのか。。。 いずれにしても気持ち悪いな。
アスペルガーか何かじゃなければ脳が自動的にマ板って読み直すから通じるね
>>366 また気持ち悪い奴が出てきた。
本気でそう思ってるのだとしたら重症。
2chなんだから、重症の人もまま居るだろ
質問スレなんかをわざわざ荒らすようなやつのことだな
お前らも一緒だろ。 あ、大丈夫だよ。俺も一緒だということは自覚してるから。
>>364 喫煙所から出てから30分は部屋に入らないでほしいね
UsbEndpoint.getMaxPacketSize()って何に使うの? UsbDeviceConnection .bulkTransfer()に仕込むbufferは、これ以上のsizeを指定しても問題ないのだが、、 あと、libusbと比べるとかなりパフォーマンスが落ちるのけ?
音楽を反響?っていうんですか ビブラートかけてる感じにしたいです 音楽プレイヤーで、フォルダから音楽選んだらそんな感じで再生出来るのを目指しています なんのキーワードで検索すればいいかもわからなくて、参考になる本やサイト、キーワードを教えていただきたいです
音声データーのバイナリ加工じゃね
サウンド関係のスレは別にあったと思うのでそちらで聞いてみたらどう?
377 :
デフォルトの名無しさん :2013/11/02(土) 14:41:01.53
Viewを半分だけ遷移する方法ってありますか? 上にViewがあり、現在のViewを半分残して上のViewを表示する形です。 初心者ですみません
LayoutとかViewGroupに二つのViewを突っ込んで、一方だけインスタンスを差し替えるとかじゃダメなの?
>>378 それこそFragmentの得意分野じゃない?
下にナビゲーターおいて上の画面を差し替えるとか
ただ特定の画面を出したり消したりしたいだけなら
2つのViewをweightで半々にしといてGONEさせればいいだけ
381 :
デフォルトの名無しさん :2013/11/02(土) 16:18:29.34
377ですがMapFragmentなので出来れば再読み込みなしにしたいです
>>373 に回答してくれる人いない?俺も知りたいわ
俺も知りたい
>>373 じゃあ推測で。
tcpのセグメントサイズなんかと同じで、効率の問題なんじゃないの。それ以上だと、下の層で自動的に分割されるので、端数あるとオーバーヘッド増えますよとか。
知り合いと「Androidで平安京エイリアンかミサイルコマンドみたいゲーム作ってみようぜ」という話になったのですが、 初心者向きのオススメの本はどれなのでしょうか?Javaはそれなりにマスターしています。 よろしくお願い致します
じゃウェブのリファレンスでいけるだろ
ターゲットバージョン4.0で開発してたけど、エミュで3.0の動作確認したら全く動かなくてワロタ 初心者にはきつすぎますなぁ
インストール時ではターゲットが最新OSだからなSDKマネージャで3.0落とさないと
藤本さんやっけ?
質問なんですけどAndroid2台をBluetoothで接続して音声の通話ってできますかね?
Bluetooth繋がる距離なら、じかに会話できるよ。
>>393 バイクでインカムのように使用したいのです
iPhoneだとWorldTalkieというBluetooth同士で通話できるアプリがあるけど Androidで同様のアプリがないのをみるとできなさそうだね もし作れるなら一儲けできそう
無理だろwせいぜい4,5mの距離しか繋げないし直接言いに行けって話 業務用くらいしか用途なさそうだし、それならトランシーバーとかインカムとか 得体のしれないアプリよりちゃんとしたもん使うわ
糸電話かよ
Androidプログラミング初心者です。 「やさしいAndroidプログラミング」という本に書かれている通りに カメラを使用するコードを書いたのですが 実機で実行しようとするとアプリが強制終了してしまい、 その原因が分かりません。 どんな原因が考えられるでしょうか? 実機はF05-Dを使用しています。
>>395 >>396 一儲け……とかは考えてなくて純粋に自分の周りだけで使えれば良いのですが
ちょっとやってみます
2組1セット販売。120m通話でき連続使用8時間のおもちゃトランシーバーが5000円以下なのと 2台購入必須。5m以下通話でき連続使用4時間未満のスマホBluetooth通信と どっちがお得と感じるかだろうな
>>398 これってAndroidプログラミング初心者とか
そういう問題じゃないと思うんだどさ、
君が書いた情報だけで何を判断しろと言うの?
「やさしいAndroidプログラミング」の本を買って読めってこと?
それだけの情報で考えられることは、
「本に書かれている内容が間違ってるんだよ」
ってことくらいかな。ハズレを買っちゃったね。
>>398 android camera setparameters
でググればおそらく解決する。
>>401 TagとTextからエラー情報を読み取ればいいのですか?
>>402 すみません。
色々検索してはみたのですが、
いまいち原因が分からなかったので
カメラ周りで一般的なエラーがないかと思って質問しました。
406 :
402 :2013/11/03(日) 23:02:55.21
>>404 色々言わずに、まず自分で解決する癖を付けよう。
そのためには、まずは logcat とにらめっこだ。
logcat が何なのか分からない場合は
Googleで検索しよう。
>>403 ありがとうございます。
調べてみます。
408 :
402 :2013/11/03(日) 23:06:28.62
>>405 色々検索といっても
logcat に表示される エラーログ では
検索してないんでしょ?
・どんなExceptionが
・どこで発生しているのか
の2点を特定してからが始まりだよ。
ここで質問をする場合も同じ。
え、ここって知的好奇心じゃなくて損得でプログラムを作るかどうか考えるやつが来る場所だったのか
>>406 ご指摘ありがとうございます。
logcatについてはまだあまり知らないので
調べて勉強してみようと思います。
>>408 詳しくありがとうございます。
以降そのようにしてみます。
>>409 いったいどのレスを見てそう感じたのか
まったくもって謎である
自力で解決できない問題はここに来ても解決できない
>>414 身もふたも無いが良いこと言った
そのとおりだ
>>396 classAなら規格で100m。バイク同士で遮蔽物もなければ、それくらい出そう。
classBでも実際は10m以上届いたりする。音楽聞いてる時にスマフォ忘れて切れる距離とか。
bluetoothで通話できるアプリができたとして バイクでどうやってインカムみたいに使うんだ? bluetoothヘッドセットはAndroidと繋ぐわけで 同時に2回線は繋げないと思うが
Android同士も接続するんだろ まあ受話スピーカー使おうってんで無ければそう困難じゃないと思うがな
>>418 その線で行こうと思ってます
とりあえずAndroid同士の通信から始めてみます
A2DPで接続するところから地道にやっていこうと思います
電池の減り具合にビックリするだろうな
>>418-419 1台のAndroidにヘッドセットを接続しつつもう一方のAndroidと通信なんてできるのか?
androidじゃないけどPCでBluetoothのヘッドホンとマウスを同時に使うと マウスを動かすたびにとても聞けたもんじゃないほど音割れしてたなあ
MediaPlayerを使ってサービスで音楽を流すところまではわかるけどそこから現在の再生ポジションってどうやってとるのがいいの? 今はhandlerでループさせながらaidlでとってるけど
ハードコーティングをどういう意味で使ってるのかがさっぱりわからん
直接数値を埋め込んで変更が困難なダメな書き方って以外の意味はないと思う
>>425 データをプログラム中に埋め込むハードコーディングは初心者がすることだろう。
>>426 金メッキとか、チョコレートで包んでどうする。
すみません高度なコーディングという意味です
はい 輸出規制にあたる認定プログラマーです
ハードコーディングはお違反の場合ダメプログラマ用語だぞw
>>429 コーダーは一人では何もできないので、一人前とかない。設計を学ぼう。
コーディングできないのに設計ができるとかもないけどな。
>>422 >>419 がどういう設計しようとしてるかは知らないけど
少なくともA2DPとSPPの同時接続とかは出来るよ
というかA2DPとAVRCPとか考えれば出来て不思議じゃないと思うけど
面接官「では、ご自分のプログラミングのスキルについて述べていただけますか?」
>>425 「はい、一人前にハードコーディングできます!」
面接官「お、おう・・・」
ハカー、トプガン、アーキテクト、なんて称号?は思いつくがソースを褒める言葉って知らんな
一般的にはデスマで作るコードをさす
438 :
425 :2013/11/04(月) 15:21:56.59
いやいや、自分が言いたかったのは これぐらいのコンポーネントをハードコーディング で作り上げれるレベルならという事です。
ハードディスクをハードと呼ぶのはすっかり定着したな
苦しみながら作ったコードが動いたときの感激を味わいたいってただのMじゃん
よく知らない用語を使う前にググって意味を調べた方が
>>438 見苦しい
素直に誤用してましたしーましぇーんって言うか黙ってればいいのに
高度なコーディング高度なコードでいいじゃん語呂も
なんか盛り上がってるが結局フルスクラッチのことを言いたかったんじゃねーの
そんな気がしなくもない そもそもAndroidの高度なコーディングってどんなもんなんだろ
素人の考える高度=色んな機能使ってる 玄人の考える高度=バグ一切なし
コーディングハード ブルース
ハードコーティングワロタ
硬度
カーワックスか?
>>433 設計者は設計図書けばいいのだから、コーディングできなくても良い。
ただし、一般的なAndroidアプリの場合、Activityとかフレームワークを知らないと設計できない。
レトロゲーっぽいドット絵のゲームを作ろうとしてるんですが、 16*16の画像をそのまま64*64にリサイズできますか? createScaledBitmapでリサイズすると、フィルタをfalseにしても妙な補正がかかって綺麗なドット絵にならない…
リソース入れとくフォルダの違いで補正が掛かるとかじゃね始めたばかりのときなったなnodpi、これ
>453 おお、ありがとうございます! すんなり等倍拡大しました。
質問です Activityヾervice?AIDLで出来ますが Service、ctivityはどのように通信するのでしょうか?
すいません文字化けしてますね Activity->Service?AIDLで出来ますがService->Activityの通信はどうしたら良いですか?
457 :
デフォルトの名無しさん :2013/11/04(月) 21:06:04.69
ホーム画面に戻るボタンを作りたく、 以下の関数を作成しました。 private void publishHomeKeyEvent() { KeyEvent event = new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_HOME); dispatchKeyEvent(event); event = new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_HOME); dispatchKeyEvent(event); } ですが、この関数を呼び出しても何も起こりません。 どこが可笑しいのか分かる方がいらっしゃいましたら ご教授願えませんでしょうか。
458 :
457 :2013/11/04(月) 21:06:56.73
なお、上記において KEYCODE_HOME を KEYCODE_BACK にした場合には、 ちゃんと「戻る」の動作が発生しました。 よろしくお願いいたします。
459 :
457 :2013/11/04(月) 21:18:16.50
度々すみません。
誤解を与えかねない文章になっていたので、
>>457 の1文目を訂正します。
× ホーム画面に戻るボタンを作りたく、
○ タップしたら「ホーム画面に遷移する」ボタンを作りたく、
3レス使用してしまいましたが、
よろしくお願いします。
ホーム画面に遷移ってことはアプリがバックグラウンドに行くってことか?
ホーム画面だってホームアプリなんだから 実行中のホームアプリを起動すればいけそうだけど デフォ設定してるホームを見分けたり、設定してなきゃ ホーム選択ウィンドウでワンクッションはさむことになりそう
>>460 はい。
端末のホームボタンと同じ動きにしたいです。
>>457 ちゃんjavadoc見た?
KEYCODE_HOMEは効かない
Key code constant: Home key.
This key is handled by the framework and is never delivered to applications.
>>463 ありがとうございます。
勿論そこは見ていますが、
これってイベントフックの時の話ではないのでしょうか?
イベント発行もダメって読めません。
>>461 そういう方法もありますね。
実現できるか考えてみます。
465 :
461 :2013/11/04(月) 22:42:32.97
質問です Equalizerを使って端末から出る音のカスタムをしたいのですが、他のアプリから発生する音源への反映方法がわかりません Equalizer(int priority, int audioSession) audioSessionに 0 を入れれば全ての音源に反映される(推奨はしない)というようなことが書かれているのですが、実際に入れると例外になります どなたかご存知でしたら教えて下さい
twitter4jを用いて、twitterのフレンド情報を取得し何らかの形で表示させたいのですが、フレンドの詳細情報を得る際に時間がかかってしまいます。 試した方法は、 getFriendsIDs(id, cursor); フレンド達のIDを取得 ↓ lookupUsers(iDs); IDから各個人の詳細情報を取得(List<User>) ↓ User#getName(); などを用いて表示 という方法と getFriendsList(id,cursor); IDから各個人の詳細情報を取得(List<User>) ↓ User#getName(); などを用いて表示 の二通りです。 (どちらも実行時間はほとんど変わりませんでした。) 個人の詳細情報が格納された List<User> から情報を参照する際に時間がかかっていることはわかったのですが、解決できない状態です。 List<User>から早く取り出す方法、あるいは上記の二通りとは違った手段でフレンド情報を取り出す方法を教えて下さい。
468 :
425 :2013/11/05(火) 05:29:23.33
すいませんでした 自分が習っていた講師が、全てをコード内で書くことを ハードコーディングと言っていたので、そう書きました。 フルスクラッチっと言うのですね 勉強になりました。 スレ汚してすいませんでした。
>>468 フルスクラッチは何もないとこから書くこと。
実力を測るためなら、フルスクラッチのものが対象になる。その中でもハードコーディングより、プログラムとデータを分離していた方が、実力は上と見られる。
ただ、授業みたいなものだと、保守性は不要で、学ぶ点は別のとこだったりするから、ハードコーディングも有り。
単に講師が間違っていたか聞き違えただけでしょ
>>425 の書き込み読めば、ホントは何が言いたかったか普通分かるよ。
あとはレスする人が腐っているか否かってだけ。
職場の上司がこういうタイプだと「運が悪かったね」としか言いようがない。
まあ、現実問題こういう人たちをこの世から消し去ることはできないので
受け取る側も「聞き流す」力が必要になるわけだ。
自分の間違いを受け入れられないうちは半人前。 間違ってることをスルーするのが優しさなのは、体裁を気にする場合。 初心者相手なら間違いを正すのが優しさ。その時の感情でしか善し悪しを判断しない人にはわからないだろうが。
だいたいフルスクラッチも意味違うだろ
外部ライブラリやら、コピペ流用無し、全部新規で作るって事じゃねーの? てか、ハードコーディングの意味は伝わったんだろうか
>>465 ありがとうございます。
帰宅後に試してみます。
ずっと気になってるんですが Viewのコンストラクタのint型の引数ってなにに使うのですか?
mediaplyerについて詳しく書かれた本とかサイトありませんか? 情報が少なくて悩んでます
contentproviderから取得したカーソルを結合するにはどうすればいいですか? sqlみたいにカラムの指定でテーブル1とかテーブル2とか指定できないのでしょうか?
結合するには男と女を密室に入れれば良い
カーソルの結合ってなんだ
LEFT JOIN とか INNER JOIN とかでは 無理
>>471 言い方の問題を話しているのであって
間違いを指摘するなと言っているわけではないと思うのだが
>>484 言い方の問題なら、聞き流すとは言わないだろう。
それにここはツーチャンだぜ? 言い方気にしてたら話にならない。気にして欲しいなら、知恵遅れでポイントだした方がいい。
>>478 ありがとうございます
後で読んでみます
>>483 そうですね。
テーブル1 で持ってないデータ(画像uri)を結合したいだけなんです。
sqlだと、一発でできそうなんだけど。
androidシステム回りのデータは、みんなcotentprovider使ってないのかな?
sqlhelper使ってるの?
ContentProviderは外部に公開する仕組みだからなあ その先がSqliteなのかただのファイルなのか 外から見た場合は意識しなくていい
>>487 SQLよりstreamにfilter入れた方が、メモリも食わないし速いんじゃないの。
Activityを起動させてviewが描画されたタイミングで動作をしたいのですがそのようなメソッドってありますか?
あった気はする
画面のサイズを取得するならこのメソッド内でやってね、ってのがあるからそれで。
短歌の表示をさせるアプリをつくったとして、既にアプリをダウンロードしている端末に 新たな短歌(データ)を渡すのはどういう仕組で実現できる?
(1)サーバーからデータダウンロード (2)アプリ自体のアップデート 普通は(1)だけど、凝ったことしないんなら(2)でもいいんじゃね
自分でサーバー用意してそことデータのやりとりって事かな それやるなら端末からデータ送るやりとりも割りといけそうな気がする
バックグラウンド時にServiceを使う場合、ActivityのonPauseなんかでbindServiceを呼んだ場合に Activityが破棄されずにちゃんとonServiceConnectedが来る保証ってあるんでしょうか?
アプリ開発スレはもう要らんのかな?
>>497 調べてないので、答が解らなかったときの参考意見として。
呼出元のActivityから見たら、onServiceConnectedは少なくともonPause中に呼ばれることはなく、onPauseが終わってから呼ばれるんじゃないかな。
なので、保証はないかと。
>>497 何を言っているのかわからない
bindServiceにActivityを延命させる効果はないでしょ
破棄されるときは破棄される
supprt13apiっていうサンプルすら俺はeclipseで動かすことができない。 もう駄目だ、おしまいだー。
canvasにdrawtextで書いた文字をその場で180度回転させるのってどうしたらいい? canvas.rotateを使うとx軸y軸が変わるのか全然違うとこいっちゃうし
>>502 rotationの回転中心を考慮しろksg
ツュース 春日
SQLite使いたくてコード書いてるんですが、上手く動作しません。 おすすめのサイトあれば教えてください
カーソルをバインドしてあるリストビューの各項目に対して簡単にフィルタするにはどんな方法取ればスマートでしょう?
SQLiteについての質問です。 説明しにくいんですが、たとえば、【店舗のクラス】と【商品】のクラスがあるとします。 店舗のクラスには、フィールドとして店舗名(string)・店舗場所(string)・商品(商品)。 商品のクラスには、フィールドとして商品名(string)・価格(int)。 まず店舗データを入力して、店舗名と場所をSQLに保存。その後、店舗ごとに商品のデータを入力して保存したいと思っています。 この場合、テーブルをふたつ作って、そのふたつをどう結びつければよいか施工中です。 商品にも店舗名を持たせて結合させたらできますか?その場合はどの結合方法がいいのでしょうか。
両方のテーブルに店舗IDを追加してそれで結合するべき 店舗名のような変更がありうるカラムは主キーに向かない
2年くらいここ見てるけど大体出てくる質問って決まってる気がするな
>>421 バイク同士です!
>>420 バイクのバッテリーからUSB給電しようと思ってます
>>434 なるほど
とりあえず携帯端末同士の通信しか考えてなかったです……
たとえば?
>>511 発想は良いと思う
是非完成してもらいたいが…
適宜状況のリポートを宜しく
アプリの下のほうにメニューボタンみたいのが常駐してるアプリが たまにあるけどあれの名称を教えてください
>>514 メニュー・アクションバーのことかな?
検索すればそれと同じようなのが出てくると思う
間違ってたらすまん
rootなしでnotification areaの時計を消すことはできますか?
>>509 回答ありがとうございます。
店舗のクラスには主キーに_idを置く予定です。商品にも店舗IDとして店舗クラスから_idを取得して登録という形でできそうですね。やってみます!
給電に不安がないならWifiの方が安定すると思うぞ
>>517 店舗クラスのメンバの商品は複数あるんじゃないか。Collection<商品>。
そういう時は店舗と商品のidだけを知っている3つ目のテーブルを作るのが良いと思う。
>>518 スマフォのWi-Fiって、アドホック通信とかアクセスポイントになるとかできるの?
bluetoothでヘッドセットつなげて Android同士はWiFiDirectでいけそうだな
521 :
デフォルトの名無しさん :2013/11/06(水) 21:34:25.29
SQLiteでテーブルを作成するときに DEFAULT制約をつけることができますが、 既に作ってしまったテーブルが持つ型に対して あとからDEFAULT制約をつける方法はありますでしょうか。 例えば create table table1(integer id, integer hoge default 1, text str) とすれば hoge に値を指定せずに insert なりすると hogeに1が入ります。 これを、既に create table table1(integer id, integer hoge, text str) で作ってしまった table1 の hogeに対してdefault制約を付けたいのです。 よろしくお願いします。
本買えよ
>>525 ALTERはカラムの追加で使っているので知っていますが、
既にあるカラムに対してDEFAULTの追加ってできるのでしょうか?
ググっても情報が見つかりません。
できない
>>526 くぐったらすぐ出て来たよ。
http://www.sqlite.org/lang_altertable.html SQLite supports a limited subset of ALTER TABLE.
The ALTER TABLE command in SQLite allows the user to rename a table or to add a new column to an existing table.
It is not possible to rename a column, remove a column, or add or remove constraints from a table.
SQLiteは限られたALTER TABLEのサブセット(テーブルの改名とカラムの追加)をサポートします。
カラムの改名、カラムの削除、制約の追加や削除は出来ません。
俺なら普通にバイク館行ってバイク用インカム買う
lineで繋いで、ヘッドセットでいいじゃん
あれ、自分のパッケージのR.javaってインポートしなきゃいけないんだっけ? インポートしないでできてた気がしたんだが。
>>529 バイク用インカムはバカ高
♀とタンデムする時以外はいらない
♂と何を話す? キモチ悪
>>532 意味不明
男と話すのが気持ち悪いなら最初からブルートゥースインカム開発もいらないのでは
>>533 ♀とタンデムツーリングする時に必須
はやく造ってアップしてね〜
アプリの更新ってどういう状況、仕組みか教えて 既存のアプリの上から新しいアプリを書き換えてるの? もしそうなら更新と銘打って全く異なるアプリにすることもできるの?
Lineとかだったらどっかを経由してる分なんか損をしてる気持ちになるな すぐそこに居るのに遠回りして通話するのもなんだかなあとは思うwww
bluetoothヘッドセットのバッテリがきつくね?
AndroidStudioってまだNDK使えない?
まだ使えない
>>531 基点となるパッケージにR.javaが作られるだけなのだから、別のパッケージからは当然importする必要がある。Javaから見たら、何ら特別なことはない。
>>539 ありがとう
NDKないとぼかし効果つけれないorz
>>541 試したことないけど、確か外部ライブラリの取り込みはできたと思うよ
JNIのGUIデバッグが必須じゃなければ、ライブラリはコマンドラインからビルドしても良いんじゃない?
>>540 パッケージ分けてないけど、この現象結構起きるんだよなぁ。
他のRをインポートしてるんだろ
ローカルのHTMLファイルにstrings.xmlに宣言した文字列を 言語別に表示したいのですが、どのように設定すれば可能でしょうか?
>>545 ですが言語判定してから読み込むHTMLを分けた方がよさそうな気がしました。
失礼しました。
>>543 マニフェストに書いてあるアプリケーションのタグのパッケージ名と、ソースのパッケージ名が一致してても起こるってことか?
そういう現象は途中でアプリケーションのパッケージ名変えた時しか起こったこと無いわ
>>508 遅レスだけど、
DBは定石があるから、
試行錯誤で開発するより一度入門書を読んだ方がいいと思うよ。
>>547 そうそう。
なんでRインポートされてるんだよ、とか消したりするとリソース読めなくなる。
クリアとか先起動しても中々直らないんだが、いつのまにか直る。
>>549 R.javaかR.classを検索して見てみりゃわかるんじゃないか。
>>551 連投失礼します。
参加者のレベルとしては、けっこうたくさん集まっているので難しいところですが、
JAVA以外のプログラミングならやったことがある、というものが大半です。
ニート株式会社がヤフーニュースに出たから真似でもしようと思ったのかい
>>554 教える相手の経験と環境と目的によって教え方ぜんぜん違う。
本も必ず対象にする読者が前書きに書いてあるが、それでもレベルに合わなかったりするので、読み飛ばしたり何冊も読む。
なのである程度レベル規定しないと無駄にならない?
それでもって言うなら、それらの本の元になってて公平性も高い、本家のドキュメントをオススメする。入手も複製も楽だしね。
プログラミングの初めは作りまくるのがいいと思う。 これがあれば便利!っていうやつを、 ぐぐったりして、繋ぎあわせる。 そうすれば、勝手がわかってくるよ。 なれてきても、結構ググるし、本でキッチリ勉強しようとしすぎるのもどうかと。 勉強できるよりも、これがあれば便利、面白いっていう発想の方が遥かに重要。 下手したら、発想だけ練って外注したって成り立つし、そのほうが会社としても成り立つし。 慣れてきたら初めて本を読むかな? 本を読んで「こんな機能があるなら、あんなことができるんじゃね?」的な見方で。 なので、本でどれがっていう質問には、どれもno。まずはググれ。
>>555 レスありがとうございます。
会社をつくったりして利益を出したいというよりは、やることを見つけて生き生きと生活したいというように思い始めました。
>>556 レスありがとうございます。
中には開発経験者も参加してくれてはいますが、教える-教えられる、という関係ではなく、輪読という形をとろうと思っています。
ちなみに自分はほとんど経験がありません。
勉強のモチベーションを保ち続けられること、を一番の目的としているため、参加型のグループを作ったということです。
人数も多いため、各メンバーに合わせて読み飛ばしたり別の本を参照したりすることは、基本的には各メンバーの自主に任せようと思っています。
現在2週間ほどを使ってJavaの基礎を学ぶ予定なので、Javaの基礎文法がなんとなくわかる、というレベルを主眼に見てテキストを選びたいと思っています。
ついていけない、という人にはできるだけ自分が個別に教えたり、メンバーに質問してもらう形で対応してもらおうと思っています。
簡単すぎる、という人にも、もちろん来たり来なかったりは自由ですし、初心者が頑張っているのを見守ることや、
時には教えたりすることで、モチベーションを保つ目的で利用してもらえるのではないかと思っていますので無駄にはならないと考えています。
本家のドキュメント、おすすめありがとうございます。検討してみます。
>>557 レスありがとうございます。
水曜土曜が輪読会の日の予定で、また日曜に実習の日を作っています。
みんなで出し合ったプログラムのアイデアのうち、気になったものを各メンバーが作ってきて、
発表したいものがあればソースを事前に配って、実習の日にソースの解説、新たに学んだこと、工夫したところ、うまくいかなかったところなどを発表してもらおうと考えています。
実習だけですと、自分が全体についていけているのか分かりにくくなるため、最低限のラインとして輪読を並行して進めようと思っています。
実習の際には
>>557 を参考にしたいと思います。
無職なら就職者支援訓練のAndroidコースでも受けた方が お金もらえて学べるからよっぽどいいぞ
なぜヒキ板に・・・人集まらないだろ 上達の足がかりになるのは自分がほしい物を決めて 作る過程でいろいろ調べながらやれば身についていくはず 作ってて面白いと思えるの大事
プロジェクトは失敗する、なぜなら・・・
>>542 android studio?NDKのコンパイルがわからなかったから解像度下げてからぼかすことにしました
content providerのwhere句で ああ abc 上のデータに対して like あ% はヒットするのに a% はヒットしないのに %ab% はヒット。なんでや。
abに対してa%は?
aの前に何かゴミがある
utf8bomとかなつかしい
玉転がしゲームを作成しているのですが Drawerを利用した図形描画でランダムなサイズで障害物用の四角形を表示する場合に 配置が重ならないように位置決めするサンプルソース等がありましたら教えて下さい
そこまで絞ると難しい
あるアクションを行うと一部のViewが変更される動作を作っているのですが、Viewの変更には時間がかかるため、そのView(またはViewの上)にプログレススピナーを設置したいです。 プログレスダイアログで表示するプログレススピナーを他のViewに適用することはできますか?
あれは ProgressBar バーじゃないけど Bar っていう名前 View を非表示にして、代わりに同じ場所に ProgressBar を置けばよい FrameLayout の中に最初から両方置いといて setVisibility で表示/非表示だけを切り替えるのが楽
>>570 レスありがとう
Drawerじゃなくても描画できる何かならおk
勝手にprogress bar表示してくれるんだけど、fragment使うとそうなのかな?
>>548 レスありがとうございます!
そうですよね、Android以外でも使うようになると思うので入門書でも購入してみたいと思います。
ファイル1...nを継ぎ目無く再生させたいと思って、動画を再生する方法を調べているのですが、 VideoViewだと、ファイルかURIしか指定する方法がないので、 Apple HLSみたいな複数のセグメントに分かれた動画を連続再生できないようです。 これを実現する方法って何かないでしょうか?
ひとつが終わったら次を再生するようなプログラムを組むしかないのでは いかに継ぎ目を無くすかが課題だと思うけど 例えばMediaPlayer2つ用意して次の動画を準備済みで待機させておけばすぐに開始できないだろうか まぁ実験が必要
RadioGroupにラジオボタン追加した後はどうやってaddViewするの? そのグループをaddしただけだったら一番最後に追加した要素しか表示されないです
推奨のJDKなんですがまだ推奨は6のままですか? あとそのうち7に変わるとか情報見たことある人がいたら教えてください
リストのsetSelectionで指定してるリストの色が変わっていません このメソッドは引数のリストを先頭に移動させるだけなのでしょうか? 例えば list.setSelection(3);とすると4番目のリストが先頭に来ますが 背景色は変わりません
↑すみませんListViewのことです
先頭に来る??
カーソルが移動するだけみたいですね。 指定したリストだけ背景色を変えるにはどうすればいいでしょうか?
自己解決しました getViewをオーバーライドしますた
質問です。 ある時刻になるとネットからデータを取ってきてDBに保存する というものをHandlaを使って実装したアプリを作っていて アプリ実行中は、ストレスなく動くようにはなっているんですが スリープ状態でも ネットからデータを取ってきてDBに保存する だけの動作だけを実行するにはどうすれば良いのでしょうか ServiceとAlermManagerを使うのだろうと思うのですが サービスを作って、AlermManagerで管理すると思うのですが どう実装したら良いかわからないです。 どなたかご教示願います。もしくは良い参考サイトか、質問サイト があれば教えていただきたいです。
>>580 RadioButton のインスタンスを一つずつ作って
それぞれのインスタンスを一つずつaddViewしたら
いいんじゃないの?
>>542 二日間格闘してやっと出来た
windowsだけ少し違うとかやめてくれorz
590 :
587 :2013/11/10(日) 02:58:39.69
自己解決しました
test
平仮名、カタカナ、半角、全角を区別なく検索したいのですが、content provider経由で、例えば、「 あ」で「ア」を検索したい時、like あ orア or ア とプログラム側でひらがな、カタカナ文字列をそれぞれ作成するのでしょうか? それともsqliteでそういうコマンドは用意されていますか?
質問です。 ただいまEcsriptでコードを書いてターミナル(私はMac OSを使用しております)でコンパイルと実行をするといった具合で開発を進めているのですが、 複数のパッケージを使った時にコンパイル時にエラーが起きました。どうやらサーバーの設定をいじらないといけないみたいなのですが、知識に乏しくググってもイマイチ理解できませんでした。 そこで皆さんに直接の解決方法で無くても良いので、皆さんがサーバーを設定した時に参考にした本やサイトなどがあれば教えていただきたいたいと考えています。 何卒よろしくお願いします。
>>594 です。
Eclipseの間違いでした…
エラーで私の頭もやられている様ですw
連投失礼しました。
>>596 解答ありがとうございます。この場合読むべき本はサーバーの本なのでしょうか?
>>597 サーバーって、何のサーバーだよ?
ここはAndroidプログラミングのスレなんだか、あんたは何のプログラムを作ってるの?
>>598 そりゃおまえ、あれだよ
きっと資本がタップリあってサーバー運用して
サーバー経由で利用するアプリを作って
サーバー側での処理もできるんだよ
って、んなわけねーか
コンパイラが途中サーバ設定見に行くの?何のエラー出たかも書いてねーし
Erlangじゃねーの
604 :
デフォルトの名無しさん :2013/11/10(日) 17:39:58.32
EditText を持つダイアログを表示させた時に、 ・EditTextにフォーカスが当たっており ・IMEが表示された状態 にしたいのですが、うまくいきません。 やったことは次の通りです。 ・AlertDialogにsetViewするxmlファイルのEditText要素に <requestFocus/> タグを挿入 ・AlertDialog.Builder builder = new AlertDialg.Builder(this).setView(dialogview)... (略) builder.show(); showIME(MainActivity.this, dialogview); ここで、showIME関数は次のように書いています。 private void showIME(Context _context, View v) { InputMethodManager inputMethodManager = (InputMethodManager)_context.getSystemService(Context.INPUT_METHOD_SERVICE); inputMethodManager.showSoftInput(v, InputMethodManager.SHOW_FORCED); } これでは、ダイアログ表示時に EditTextにフォーカスは当たっているようですが(枠の色がフォーカス時の色のため) IMEが表示されません。 この状態から、EditTextをタップするとIMEは表示されます。 どのように対処したらよいのでしょうか。
605 :
604 :2013/11/10(日) 17:58:25.78
ひとまず自己解決しました。 dlg = builder.show(); dlg.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE); で、IMEが表示されました。 これで他の動作に不具合が出ないか検証してみます。
標準Google検索アプリでたまに結果を読み上げてくれるけど、この読み上げAPIって外から叩ける?
>>604 >>EditText を持つダイアログを表示させた時に、
>> ・EditTextにフォーカスが当たっており
>> ・IMEが表示された状態
>>にしたいのですが、うまくいきません。
普通はこれがイヤで色々工夫するんだけどね
コードがおかしくないか?
Activityの場合は色々と工夫しないとならんけど AlertDialogの場合はソフトキーボード出なかった気がする。 勘違いかな。
RadioGroupに追加した後のRadioButtonをaddviewしようとしたら illegalExceptionがでるんだけどどういう風にレイアウトに追加したらいい? xmlは使い方良くわからないから.javaだけで書きたい
>>611 パッケージ名のほうなのですか。
ありがとうございます。
初心者から勉強始めて、やっと自分でギリギリ使えるレベルのツールができたが、公開まではほど遠いなー。
>>614 寧ろ公開して、ツッコミ・アドバイス受けたほうが早い。
匿名でブログ開いてもいいし。
てぐすねひいてまってるってさ
>>609 UIのある程度の見た目は、XML使ったほうが良い。
て言うかXMLに慣れとくべき。
ちなみに、コードで書くなら
まずRadioButtonのインスタンスの生成で
1個目にsetIDでid(例えば0)とかを入れて
2個目にsetIDでid(例えば1)とかを入れて
その後RadioGroupのインスタンスを生成して
でそれぞれのRadioButtonのインスタンスを
1個ずつaddViewしてcheckにid(例えば0)を入れて
あとはレイアウトにaddViewで RadioGroupのインスタンス
を入れる。
あとそれぞれインスタンスを生成する時コンストラクタに
thisを忘れないように。
>>617 >>618 ありがと
Canvas?使って線引いたりしてるからそれとxmlを一緒に使う方法
わからんからjavaだけいじるようにしてるんだよね...
>>619 View継承してコンポーネント作ろうとしてんのか?
でもRadioGroupもまともに実装出来ないレベルだし・・・
何を作ってんの?
>>620 canvasに描画されたものを変化させたりするだけの自分のandroid開発勉強のためのプログラ厶だよ
俺もまさかこんなので躓くとは思わなんだwww
622 :
デフォルトの名無しさん :2013/11/11(月) 15:53:02.86
元FOX氏、Androidプログラミングでつまづく
ttp://katsu.ula.cc/test/read.cgi/superfox/1362410490/ 254 名前:いわし ★ [] 投稿日:2013/11/11(月) 16:14:11
こんな風に書くのか
Activity#onCreate(Bundle)
255 名前:いわし ★ [] 投稿日:2013/11/11(月) 18:10:34
なににつまずいているかというと、
Activity#onCreate(Bundle)で
WebView izuishi = (WebView) findViewById(R.id.izuushi)
とやっても、まだ出来ていないのか izuishi は null なのよね
んじゃ、layoutの変更はどこでやればいいんだ?
Fragmrnt#onCreateViewとかしょっちゅう呼ばれるところでやってもさね、
ゔ〲〰
通知領域にアプリを登録することは 実現できているのですが、 OSを再起動した際にも自動で 登録できるようにしたいです。 (勿論、登録しない設定切り換えも可能にします) ググるとACTION_BOOT_CMPLETEDを キャッチするBroadcastReceiverを作って Serviceを開始する、という方法が見つかるのですが、 アプリを常駐させたいだけなのに わざわざサービスを作らないと出来ないのでしょうか? サービス登録して、アプリ常駐させて、 サービスは停止する?のでしょうか。
626 :
625 :2013/11/11(月) 19:48:32.84
最後は、 サービスを停止させる? の誤記です。 よろしくお願いします。
onReceive内ではできないの
通知領域に登録するだけならサービス要らない BroadcastReceiverでACTION_BOOT_COMPLETEDを受け取ったその足でNotification作って登録すればいいだけ
629 :
625 :2013/11/11(月) 22:58:13.59
な、なるほど。 ありがとうございます!
>>621 なーんだ、まだまだAndroid勉強し始めたばっかか
ま〜なんだな、とりあえずXMLに慣れときなよ
絶対必要になってくるから
Androidのレイアウトってなんでこんなややこしいんだ? もうちょっとシンプルにできそうなもんだが 何が原因なんだろ
解像度の違い、縦横比、回転、個々のviewの大きさや種類、様々なレイアウトの組み合わせ 多様な表示要求に答えるためなんだろうけど 個人的にアブソリュートだけで勝手に調整してくれれば楽だと思うが
あーそうか 端末の多様さに起因するってことね 納得
GUIのレイアウトエディタと連携するために面倒な作りになっているだけ。 必要な実装を自分で書いてエディタを無視すればいいだけ。
PC用のデザインでもwebでも本当は可変サイズにしなくちゃいけないから目新しいことでもないんだけどな
>>633 かなり便利なものをあえて使わないのも趣味としては良いかもね
>>631 しゃーねーよ
iphoneやipadみたいにアップル一社独占じゃないから
端末ごとに色々と想定しなきゃなんねーから
ただ自分がAndroidの勉強してた時の講師が言ってたけど
Androidっていろんなことができて
(例えばトーストだって改造できたりなど)
Androidのプログラミング出来るようになってから
iphoneやipadのプログラミング(たぶんXコード)
やったらメチャ楽らしいよ。
ただ踏み込んだところになるととたんにややこしく
なるらしいけどね
自分のやりたいようにカスタムレイアウトを作ればいいだけなのに、 自分の手を動かすって発想が無い奴が多すぎる。
xmlで十分満足してるが?
それはそれでOkでしょ
追加とかすごい楽だけどなぁ。 絶対だといちいち調整しなきゃならない。
>>641 xmlを基本にして追加はコードでやればいい
耐リバースエンジニアリングの観点からは、ワザと何でもかんでもJavaでレイアウトをコントロールした方が、解析しにくくなるとはいえるかもね。
コードの保守性とトレードオフだろうだけど。
assets フォルダに design mode on にした iframe のエディタを置いた html を置いて、webview で開いて文字を入力しようとすると、入力出来ないか、全角が入力出来ないんだけど、そういうもの?
>>642 相対や流し込みレイアウトと、絶対座標のレイアウトの話です。
>>646 絶対時座標がいいならspでやればいいけど?
機種によってぐちゃぐちゃになるけどね
>>648 俺は相対がいいなぁって話です。
おじーちゃん、その話さっきもしましたよ。
どなたか、Galaxy Note 3か、Galaxy Jをお持ちの方、/proc/meminfoの中身を教えてもらえませんか?
そうたいして変わらん
>>645 webviewまわりのfocusをチェックするとよろし
よくある、戻る2回で終了って処理を入れたいんだけど、これって
・1回目の戻るボタン押下タイミングでフラグを立てて、その時の時間を保持
・2回目が押されたときに1秒以内なら終了
・2回目が押されたときに1秒以上ならフラグ戻して何もしない
みたいなカッコ悪い処理入れなきゃならないのかな。2回タップ検出APIとかないもんか
>>652 よくあるけど二回押すだけでも面倒なのにトーストが邪魔で誰得すぎる
終了って完全にプロセス殺すこと?
>>653 まじか。ブラウザアプリとかバックキー連打すること多いアプリだと欲しいけどな
>>654 いや、最後のActivityまでfinishするだけ
最近のSDKだとカスタムビューをXMLで指定した場合でも
ある程度ちゃんとプレビューしてくるようになったのが地味に便利
>>641 ところが大概、依頼主はそのへんなにも理解してないのでピクセル単位で絶対座標組んでくるわけですよ
>>656 2年前にカスタムビュー作っててプレビューすると、無理です!ってエラー吐いて真っ白になってたな
最近カスタムビューでもいけるのに気付いて見直したけど、XML直書きが習慣なって結局使わない
>>656 仕事は仕事。そんなとこに労力かけてもしょうがないので適当にやる。忠告はするけど。
ゲーム作ってるんですが、bitmap画像を動的に拡大縮小できますか? フレーム毎にcreateScaledBitmapでスケール調節→drawBitmapで描画すると、 フレームレートが10fpsとかになってまともに動きません・・・
drawBitmap の Rect を引数に取るバージョンを使う
>>659 drawBitmap()のパラメータでどうにでもなる
openGLは使わないの?
>>659 SurfaceView使ってる?
ただゲーム系ならGL使ったほうが良いので
GlSurfceView使うべきかと
Android標準にあるような 9つの点のスワイプによるパターンロックを 作りたいのですが、参考になる書籍や サイトなどありますでしょうか? ググっていますが、開発者向けの情報が まったく見つかりません。 よろしくお願いします。
公開されているボタンデザインを使いたいのですが、.psdの使い方がわかりません。 教えてください。
.psd はフォトショップのファイルです フォトショップで開いてください
うむ 俺なら質問前に「拡張子 psd」でググってみるわな
拡張子一覧のページ出てくるよな
おれなら .psdの拡張子のイメージファイルのボタンを使い方がわかりません 姪の女子高校生に聞かれました と聞くけど
googleからBANされているから仕方ない
>>671 こういうの結構みるけど、こんな質問の仕方なら食いつくんだろ(ニヤニヤ
みたいに見えて俺はスルーだわ
GoogleAnalytics for Android導入したいけど、情報が少ないっす どこか説明してるサイトないかな? テックブースターの記事は古かった
機能追加しようとすると、現状の仕様では対応するのに難しくて、大規模に作り直す。 作り直してばっかでいつまで経っても完成しねぇぇぇ
機能追加するのをやめにして、いったん完成したということにすれば解決
機能追加するために作り直すってのは悪手な気がするけどね 工数も問題だけど、そのバージョンまでに報告されたこまかなバグ修正が全部無駄になる
設計が悪い気がする
うむ 他の人はうまくやっているもんな
初心者だから、まずは基本的な機能だけつけようとコード書くんだが、まぁ欲はでてくるもんで、後になってやっぱここは丁寧に設計した方がよかったなぁって感じでして
拡張を見越して時間かけて余裕ある設計しても、別にそこは拡張しなかったり、対応しきれない拡張が出てきたり・・・。いいこと無いわ 俺は拡張性は最小限にして、必要な時につぎはぎコードで拡張するのを選ぶね
683 :
デフォルトの名無しさん :2013/11/13(水) 21:06:46.65
修正に必要な箇所が見つかるたびに次に作るアプリではそこら辺考えられるようになってうまくいくから 一人で作ってんなら別に作りなおさなくてもコード把握できればいいんじゃないかな
SQLiteで検索ボタンを押したら textviewにクエリの結果、 レコードの一行目の表示、まではできたんですが 次のレコードへのボタンをクリックしたときに textviewに二行目のレコードのデータを表示したいの ですがどうすればよいでしょうか? お願いします
cursorから配列におこしてやるとか
カウンタ変数を作る 最初は0。次のレコードへボタンを押すと1 次のレコードへボタンを押すとSQLでselectを再度行う その際SQL文に、offset (カウンタ変数) limit 1 とする そしてTextViewの内容を書き換える
687 :
664 :2013/11/13(水) 23:13:00.44
>>665 ありがとうございます。
こちらで勉強いたします。
(ファイルの数が多くて、どう使うのかも全くわかりませんが)
688 :
684 :2013/11/13(水) 23:28:38.57
>>685 >>686 返答ありがとうございます
カウンタ変数が作れたらなんとかいけそうです
ググっても結果の一括表示やリスト表示ばかりで
見つけられなかったので助かりました
ありがとうございます!
webviewの中でページ移動はキャッチ出来ますが ajaxみたいなその他のリクエストを奪ってキャンセルとか、url差し替えて投げ直したりするにはどうしたらよいでしょうか バージョン2,xでも可能な方法で・・。
実機が急にPCに認識されなくなりました 挿しても給電されるだけで何の反応もないです winのデバイスマネージャ見ながら抜き差ししても何の変化もないのでもうお手上げです HTC J butterflyなのですが何か解決策はないでしょうか
FragmentってActivityが破棄されてもsavedInstanceStateの値を保持てるっぽいんだけど どこに保存してるんですか? Activity非保持の設定にしてたのにアプリに戻ったときFragmentのonCreateが来ると思ってなかった
>>693 再起動は実機winともにやってみて、USB挿すとこも変えたんですけどだめだったんです
なんですかねこれ
>>692 Activity非保持の設定にしてたから、アプリに戻る→Activity再起動→Activity onCreate→Fragment onCreateって動いたんじゃなくて?
>>694 スマホ側の[設定]→[アプリケーション]→[USBデバッグ]のチェックを一旦はずしてまた入れてみ
>>696 それならofflineになるだけで、OSには認識されるんじゃないかなぁ。
>>691 USBケーブルを変えたとか断線した可能性は。
USB接続の種類が充電のみとかに変わったんじゃね MTPモードになってる?
layoutのxmlで、android:layout_width="match_parent" と指定しているのですが実際表示すると 画面右横にはみ出してしまいます ぐぐっても同様の例が見つからず、どこを調べたら良いでしょうか
match_parent は名前の通り親とマッチさせるので親のサイズを疑ってみる
なるほど。親のサイズってどこで決まるんでしょうか layoutのxml外かとは思いますが
>>700 はみ出すviewのサイズ指定が間違ってるとか
>>700 ,
>>702 はみ出すはみ出さないより、基本を理解した方がいいよ
子のサイズ指定がわかって、親のサイズ指定がわからないとか
子を表示してるのに親はどこ?とか
不具合以前の問題だよ
その現象がおきるxmlを貼ればいいんじゃないの。
ボロカスに言うヤツもいるから 恥ずかしくて貼れないだろ
実は俺が作ったんじゃなくて他社のSDKそのままなので、多分貼っちゃダメだと思う ちなみに広告のSDK
ボロカスに言うヤツもいるから 恥ずかしくて聞けないだろ
>>708 契約上の事情で聞くのが異常に面倒な状況で…
わらを掴む思いでここで質問させていただいた次第
>>710 なら再現する最低限のサンプルを書け。
人に聞くのでなくても、そうした方がいい。
この程度の事で悩んでいるようではどうせ他でもつまずくからあまり意味がないような...「焼け石に水」
綺麗に収まってる人間なんてつまんねーさ。 はみ出していこーぜ!
>>709 親身になって、うんうんそうだね〜君はよくやってるけど、これはこうしたほうがいいね〜
みたいなレスが帰ってこないと質問できないってか?
どうしてYES以外の答えがNOしかない人って多いの?
digitalだから
アナログだったら、わかりました わかりません の間に、わかりますん が入る
disitalにしたって分解能低すぎだけどな ただ答えようのない質問ではそれもしょうがないが
とりあえずxmlを解決したいのなら、ソースを貼る 奇特な人が解決してくれる...と、思う
リスト(画像ファイル名)を表示して選択して外部ギャラリーを起動した時、戻ってくるとリストの半分が表示されなくなる(見えないだけで動作自体は正常です)のですが原因は何でしょう? 外部ギャラリーの中でも正常に表示されるものもあります
>>720 ListViewの各行は一度描画するとずっとそのままではなく
その行が画面に映りこむタイミングで、LsitViewに設定したAdapterのgetViewが動いて毎回描画される
getView以外のタイミングで描画してしまっているのではないか?
>>721 回答ありがとうございます
>>その行が画面に映りこむタイミング
表示する範囲の下の座標が半分の位置になってしまってる感じです
さらに、複数のギャラリーの使う順序によっても出たり出なかったりです
>>707 もしかして、AdMob(もしくは同等の)広告を入れようとしたら、画面からはみ出ちゃった(テヘッ
ってやつか?
ドキュメント読んで、サンプルとにらめっこでもしてろよ
あと、藁をも掴む思いって回答者は藁かよ
失礼なヤツだな
>>700 ですがはみ出す条件がわかりました
レイアウトの中にTextViewがあるのですが、文字列が長くてはみ出る場合に画面全体がはみ出します
<LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:gravity="fill_horizontal" android:weightSum="1">
<TextView android:id="@+id/detail_appName" android:text="appName" android:scrollHorizontally="true"
android:ellipsize="end" android:layout_width="fill_parent" android:layout_height="27dp"></TextView>
</LinearLayout>
android:ellipsizeを指定しても文字列が丸まってくれず、何故だかどうしてもわからず…
ぐぐって android:scrollHorizontally="true" android:singleLine="true" android:maxWidth="320dp" などを追加しても変わらず
皆様知恵を貸してくだされ
あるビューを特定の行動に合わせて、edittextやspinnerなどへ動的に変化させたいのですが、キャストできません。 xml 〈View ... Spinner s = (spinner)view.findviewbyid どのようにすればよいのでしょうか?
なぜキャストできると思ったのか 動的にレイアウトいじるならコードで書くしかない
同じ場所にあるビューをtextやspinnerに変えるだけなのですが、そういうことはできないのですか? findviewbyidはviewクラスで取得するから、初めからviewウィジェットで設定してそのままキャストできるかと思ったんですが
728 :
デフォルトの名無しさん :2013/11/14(木) 18:19:54.53
>>691 あーイクリプスで
指してもデバイスがundefinedだったかなんかちゃんと認識してなかったら
忘れたけどなんかのプロセスkillしたらちゃんと認識するようになるよ
どうも藁その1です
拡張子aacをmp3に変えたのに、ファイルがaacのままです。って言ってる奴を思い出した。
>>730 位置は静的に設定して、型だけ動的に変えたいわけです。
setText があるように setWidgetはないのですか?
>>727 出来ない。TextViewは最初からTextViewとして作る必要がある。
findViewByIdがViewを返してそれをキャストしてるのは、TextViewやSpinnerやその他いろんViiewを返す可能性があるので、とりあえずどんなViewかは知らないけど、少なくともViewだよってことで返して、受け取った方で本来の型に戻してるだけ。
同じ場所に重ねておいてvisibilityをかえたら
>>732 ViewGroup#removeView,addView すればいいだけじゃないの?
ありがとうございます。 とりあえず、同じ場所にウィジェット設置してvisibleいじって実装しました。 同じ店でも今日はたこ焼き屋さん、明日はお好み焼き屋さんみたいなことはできないんですね。 勉強になりました。
閉店したほうがいいと思う
つFragment
イメージボタンやイメージビューに設定してる画像の名前を得ることってできますか?
>>722 どんなメソッドの中でListViewの行の内容を決めてる?TextViewならsetTextしているのはいつ?
>>742 String s=getbackgroundimage(イメージビュー);
みたいに自分のアプリの中で簡単に取得できる方法ないか探してます
>>744 名前も付けられるように拡張すればいいじゃない。
>>743 ありがとうございます
on create on resume on start どこに置いても症状は同じでした
おかしくなった後に違うアクティビティを呼んで戻ると正常に戻ります
しょうがないので何もしないアクティビティを呼んで対処しました
時間がある時に追究してみるつもりです
>>744 Resources.getResourceNameでできないかな?
ただしこのメソッドの引数はリソースID。R.drawable.image みたいなの。
Bitmapはプログラマブルに作ることも可能だから、Bitmap引数ってのはちょっと無理
>>745 >>747 やっぱりそういうメソッドはなさそうですね。
ヒントを参考にして作ってみようと思います。
ありがとう
>>749 list viewにセットした場所を書きましたが?
>>747 getResourceNameを使って思ったように動きそうです
ありがとう
ハードキーの戻るボタンをソフトキーみたいな感じで作ってみたい AccessibilityServiceを使えば実現できそうなとこまで理解できたんだが、 実際にどのようなコード書けばよいのか、当方Javaの知識がないため分からず、、 優しい方、教えて下さい
Androidの開発しています assetディレクトリまたはres/rawディレクトリにあるファイルを File型で読み込むことは可能なんでしょうか。 調べたところ、ストリーム型が基本らしいですが。 それか、インプットストリーム型からFile型にキャストできるなら、それでもいいのですが。 File型からインプットストリーム型へのキャストはならできるようですが、逆がわかりません。
>>754 アセットはfile:///android_asets/〜というパスで普通にFileで開ける
resは厳しいかもしれない
>>753 Instrumentation#sendKeyDownUpSync
この辺で調べてみろ
>>754 まずFile型でなければならない理由がわからないな
Fileが引数ならたいていInputStreamでもいける方法があると思うが
759 :
659 :2013/11/14(木) 22:13:48.45
>>660-663 ありがとうございます!劇的に早くなりました。
blog.global-eng.co.jp/android/2012/01/23/activity%E3%81%A8surfaceview%E3%81%AE%E3%83%A9%E3%82%A4%E3%83%95%E3%82%B5%E3%82%A4%E3%82%AF%E3%83%AB/
このサイトのsurfaceviewソースを参考に作ってるんですが
実行後に端末ロック→復帰させると動きが止まってしまってます・・・
mainloopが停止しているんでrun()が動作していないことはなんとなく分かったのですが
回避策はあるのでしょうか?
NDK使う場合にARMのバージョンをOSがいくつからv5かv7かって見分けつける方法はあるの? v7も対応するとjniの容量倍になるのよね
どうも、藁その2です
あんだって!?もっぺん言ってみろや!
>>761 cpuinfo見に行けばいいんじゃないの。
Androidの開発者登録について、
普通に、個人用で普段使ってるアカウントで登録していたんですが、
以下のサイトの記事を読むと
http://www.infoq.com/jp/news/2013/06/google-play-best-practices Googleによれば、個人用のGmailアカウントとは別のアカウントにアプリを移管する必要がある
という記載がありました。
これまで、気にしなかったし、そんなことを書いているサイトやブログなど見なかったのですが、
やはり、別アカウントにしておいた方が良いのでしょうか?
Googleの公式なサイトやその理由がないので、何でだろうという思いもあるのですが、
ご存じであれば教えていただけませんでしょうか?
セキュリティの問題じゃね
有料アプリ出すとき住所公開必須だから、普段アカウントだと問題ある 何より普段使ってるアカウントとアプリアカウントが一緒だと気持ち悪くない? 知り合いからのメールとユーザからのメールがごっちゃなるだろ
BANされたときに今まで買ったアプリまで事実上使えなくなるから分けておいた方がいい
えぇっ!?
>>741 あざっす、Androidのバグの影響を受けるようですね
実際試してみても端末によって挙動が違い(正しく「...」になったり丸められず改行されたり)、正直お手上げです
時間も限られているのでレイアウトを整えるのは諦めて他のことに時間を使う予定です
Fuck android
>>756 ありがとうございます
>>758 ライブラリがピュアJavaでコーディングされてて
それをAndroid上に持ってきただけなので
ライブラリのほうがFile型で開くようなメソッドになってる
できればライブラリのほうを弄りたくないという理由です
ソフトウェアキーボードの表示位置を変更することはできますか? リストビュー + 下部メニュー(view pager tab)の構成で、キーボードが表示されると下部メニューが上に持ち上げられて誤操作に繋がってしまうため、リストビューの下部(メニュー上部)から表示させたいのですが。 fragmentを使ってます。
>>772 adjustPan でぐぐる。
ただしEditTextが複数行だったり、スクロールする部分があると
いろんな問題が起こるから覚悟してね。
>>773 adjust pan はビューの高さや幅を調整する設定じゃないのですか?
ビューがシフトした際に、見やすいように高さを調整するのではなく、
下部メニューはそのままの位置に滞在させたいのです。
----------
リスト
---------- ← ここからキーボードを表示
メニュー
----------
あきらめてレイアウトの再考をお勧めします
>>774 そこからニュってキーボードが出てくる実装はできるか怪しいな。今まで見たことないし
キーボードが出る領域を上書きする感じでオーバレイに出す方法はある
では、諦めましょう。
>>778 ここはじょうきゅうしゃざつだんスレなので質問は止めてください
答えられません
レスしなきゃ良いのに。 馬鹿なのかな。
いやー、こんな小学生でもやらねーオウム返し的なことやるオッサンとか惨めすぎるだろ
>>784 あなたが惨めですね
質問です
>>784 みたいな小学生でも煽らずスルーできる事にわざわざ文句つけてくる小学生を黙らすにはどうしたらいいでしょうか?
w 駄目だこいつら
>>786 こいつらではなくあなたが駄目ですよ
質問です
>>786 みたいな自分の駄目さを人のせいにするコイツを黙らすにはどうしたらいいでしょうか?
mobogenieが話題になってますがダイアログもなしに見ただけでapkファイルか任意のファイルを ダウンロードさせることは可能なんですか?
>>788 WebページにAPKダウンロードリンクを仕込めば、ダイアログなしにダウンロードは可能
ただしステータスバーにダウンロードした形跡が残るのと
確認なしにインストールまでするのは無理だと思われる
それはどうかな
moboginieに丁度今日遭遇した これはどこから来てるの?
チャイナ
勝手にダウンロードしちゃったものをインストールしちゃう奴って Windowsとか持ってないんだろうか?普通にPCやってたら経験あると思うけど
言ってることがよくわかりませんが
よかった。おれだけじゃなかった
Windowsで勝手にダウンロードは今まで記憶にないな
インストーラーで、「はい」連打とか
はいはい
最後が「普通pcやってたらやらないと思うけど」なら理解する
Eclipse上のLogCatみたいに LogCatの内容をアプリ内で表示したいのですが Runtime.getRuntime().exec("logcat"); のやり方だと自分のアプリしか表示できないみたいです EclipseのLogCatのように全部取得するということはできないのでしょうか?
>>801 個人情報が漏れるって理由で、あるバージョンから他アプリのログが見れなくなったような気が
あまり自信ないけど
どうせeclipseつなげば見れるけどな マニフェストのdebagable値からLog出力するかどうか判断すべきでし
質問です。 自作アプリでサービスも実行されるように 作ったのですが、サービス自身はアプリがonDestroy 要は、アプリ自身を終了してもはサービスは、バックグラウンド で走ってますよね。 その時、サービスがする処理を実行しても アプリが生きてないとエラーになりますか? もしそうなら、どなたか回避策をご教示下さい。
>>804 onDestroy呼ばれても処理を実行できるのがサービスだから
エラーにはならないと思うけど
「サービスがする処理」って具体的になんぞや?
>>804 設定によってはサービスが必ずしも動作できるとは限らないので
(バックグラウンドプロセスの最大数が0に指定されているとサービスは動作できない)
必須処理をサービスに実行させるのは間違った設計
むしろバックグラウンドプロセスの最大数が0に指定できるという方が間違った設計だと思うんだが?
別に間違ってないだろ
自アプリがフォアグラウンドのときはフォアグラウンドプロセスだからそのときサービスは動作できるのでは? 別に間違った設計とは思われない
無料アプリをアップグレードするための、有料キーアプリを公開しようと思ってます 有料アプリを購入インストールすることで、無料アプリ側で「購入済み」というフラグを立てたいのですが、どんな方法がありますでしょうか パッケージ名でインストール確認だと、同パッケージの適当なアプリをインストールされてしまうと、購入済みと誤認してしまいそうで・・・
アプリ内課金
>>812 すみません
いろいろ都合がありまして、メインアプリのとは別の、寄付アプリの購入という形式にしたいのです
寄付アプリの中に課金判定取得するメソッド用意して無料のから呼び出す 署名確認やらプロテクションレベルやら調整して無料のからしか呼び出せないようにしておく
コンテントプロバイダー使うとか。
なるほど!無料アプリから呼び出すってのは思いつきませんでした。 ありがとうございます。
質問です。 eclipseのADVにおいてctrl+F11をタイプするとエミュレーターが縦画面から 横画面に切り替わるという動作に関してなのですが エミュレーターがLandscapeの状態でも中の画面がPortraitの状態で 画面の切り替えに追従してくれません。 また、screen orientationの設定をLandscape,Portraitにすると中の画面も その通りに設定されるのですが、unspecifiedにするとまた画面が切り替えに追従しません 本当に初歩的な質問になりますがよろしくお願いします 環境はMac OSX eclipse ver4.2 になります
818 :
817 :2013/11/18(月) 01:11:38.55
書き込んでおいてあれなんですが書き込むスレを間違っていたみたいです 無視してもらって大丈夫です スレ汚しすみません
819 :
804 :2013/11/18(月) 07:05:58.30
>>810 はい、おっしゃる通りで
アプリがフォアグラウンドの時は、動作できるんです。
>>806 ネットから情報を取り出してDBに登録するという処理です。
edittextで入力した "\n"(2文字)をindexOfで検索する場合、 indexOf("\\n")では検索出来ないのですが、検索文字列は何を指定すれば良いのでしょうか? utf8で作成したファイルの"\n"(2文字)はindexOf("\\n")で検索出来ます
ユーザーからするとライセンスキーのみのアプリって邪魔だよな 同じアプリのアイコンが2つになるんだし ちょっと前まではいくつか見かけたけど アプリ内課金ができる今はわざわざそうする必要もないわけだし できるならアプリ内課金にすべきだと思うが
アプリ内課金を実装する技術がまだないのでしょう
ぐぐるの作ったサンプルをコピペすればいいだけだし そんなに難しい実装でもないと思うけどなあ
>>823 不正利用とか気にしないんだったら簡単だけどね…
拡張機能の実装も面倒だし資料なさすぎだよな てか使ってる人いるんだろうか
ライセンスキーアプリは認証後はアンインストールしていいよ。って感じにしたいね 認証した本体アプリがまるまるコピーされてばら撒かれるのには、アルゴリズムで対応してさ
>>819 ネットワークアクセスもDBアクセスもサービスだけでできるよ
Actiityには一切アクセスしないようにしとけば、サービスだけで全てやってくれるよ
>>820 "\n"じゃなく"??n"になってないか?
今さら828の意味がわかったorz
\\\\n
\nっていう文字列を扱う時点でどうかしてるわ プログラマへの嫌がらせかよ
ありがとうございます
>>828 >>831 「・」って中黒ですよね?
デバッガedittextから抽出したstringを見ると
\
n
と2個になってます
改行の場合は当然
\n
の1個です
>>833 「\\\\n」はダメだったような...再度試してみます
>>834 1行に他で使う複数行分の入力をしてもらう為に改行コードとして「\n」を入力するようにしたのですが、
(区切りとしてですので「/n」とか何でもいいのですが)、思うように動作しないので調べています
>>834 MS-DOS時代からやり直して来い
便利さに気づけるぞ
C#しか使わないからしらねーけどJavaには逐次文字って概念はないのかね
eclipseで . (ピリオド)を入力した後の入力補助ワードがちゃんと表示されなくなったのですが どうすれば元に戻りますか?
まず、OSを再インストします
>>842 エラーでてる箇所は直す
それでもダメならeclipse落としてadbキルしてeclipse再起動
入力補助といえば候補ウインドウにフォーカスしてるのにマウスのスクロールホイール はエディタのままなのが嫌マウス使うなってのはごもっともですが
ピリオドの後にカーソルを移動して ctrl+space
847 :
804 :2013/11/19(火) 06:29:25.96
>>829 >>830 AsyncTaskを継承したクラス作って
その中で処理しないと無理だとわかったので
作って処理したらすんなりいきました。
>>833 >>\\\\n
ダメですね
ファイルから読んでも、EditTextの入力でも同じだと思うけど...不思議
Eclipseがデバッグモードのままで普通の実行モードにならなくなりました 実行でもデバッグでもデバッグモードで実行されます モードの切り替え設定はどこで行えば良いのでしょうか?
>>850 ありがとうございました m(_ _ )m
852 :
842 :2013/11/19(火) 11:02:15.10
再起動でもだめです。
Kepler入れてからこうなりました。
>>846 new新規オブジェクトの作成
nsl …以下4行程と
SWTテンプレート・プロポーザルがありません。
という表示が交互に切り替わります。
esclipeをインスコしなおしてもダメのような気がします。
remoteViewsのテキスト文字を取得する方法ありませんか?
RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.foo); remoteViews.setTextViewText(R.id.bar, "Hoge"); View view = remoteViews.apply(context, null); TextView textView = (TextView) view.findViewById(R.id.bar); String text = textView.getText().toString();
>>850 やっぱりダメでした
クローズしてもデバッグモードのままでした
自分用に簡単な支出管理アプリを作ろうと思っています。 一日に使える金額を決めて、その日あといくら使えるか表示したいんですが、1日たったらリセットするにはどうしたらよいでしょうか。
>>856 俺も前なったことあるけど環境でなくOSをまるごと入れなおさないと直らなかった
>>850 どうも端末側に原因があった様子です
ググりまくった所同じようなケースがあったので端末を再起動した所治ったみたいです(確実ではない)
ありがとうございました
861 :
デフォルトの名無しさん :2013/11/19(火) 14:57:28.20
WindowManagerでTYPE_SYSTEM_ALERTにてaddViewしてオーバーレイ表示をする場合に、 Fragmentをaddしたいのですが、良い方法は有りますでしょうか?
>>859 そこまでやる必要なくない?
最後にリセットした日付だけPreferenceにでも保存して、照合すりゃいいだけじゃん。
データを入力した日時を記録してたら「リセット」って処理がいらないな。
>>857 すべての支出を日付と共に記録しておいて、
参照が必要になる度に、今日いくら使ったか計算すればいい。1日で億とか使わなければ、たいした量ではないだろう。
>>862 >>863 たしかに。日次処理ってことで脊髄反射してた。。。
その日使った金額を合計すればいいだけの話だよね。
>>857 しかしこのレベルで躓いている人だと一体どんなアプリ出来るんだろうか。
>>861 FragmentはViewじゃないから無理
メアドとかセキュアな情報ってどこに保存すればいいの? ファイルは論外だし、PreferenceだってRootとったら丸見えだし
端末所有者本人のメアドとかじゃないの? 本人が見れて何か問題ある?
>>869 ごめん、例えが悪かったです。
ゲームアプリの重要なパラメタ値とか。利用ユーザには見せたくない情報。
Settings.Secure.getString(this.getContentResolver(), Settings.System.ANDROID_ID); でAndroidIDを取得する際に、 <uses-permission android:name="android.permission.READ_PHONE_STATE" /> はいりますか? 手元の実機端末では入れなくても動くのですが、必要と書いてある記事がいくつかあって、確証が持てません
>>870 rootedだとどうしようもないでしょ
パズドラみたいにチェックするか(不完全だけど)、サーバサイドで完結させるか
そもそもそのアプリが誰かが労をかけて解析したくなるような代物かっていう
>>873 サーバで扱うのが最終手段だけど、できればローカルに持ちたいんだよね
暗号化はAPK逆アセンブルしてソース読めば、複合化の処理コピペするだけで見れちゃうから厳しい。。。
パズドラでさえもRooted端末でAndroidシステムDBいじれば何でもできちゃうからなぁ
>>873 暗号化しても、それを解く鍵は端末内にあるのだから、難読化に過ぎないという認識をした上で行うべき。
>>875 単なる機械のCPUが読める以上、それを作った人間に読めないわけがない。それが必須なら、設計…いや、企画からやり直した方がいい。
全部サーバでやれ
クライアントにあるデータを単純なクライアントだけで完全に不可視にできる方法があるなら 億万長者になれるぞ頑張れや
NDK使って全部書けばほとんど読まれないよ
スクリプトキディ相手だったらそれで十分だな
暗号化部分だけNDKで行えばほぼわからないってことになるの?
>>882 その場合はNDKの呼び出しを乗っ取って、前後で細工するだけ。
ってかさ、暗号ちゃんと勉強しなよ。舐めてるとしか思えないわ。
>>884 なんだこいつの謎のキレっぷりはww
「暗号化」が怒りのスイッチだったんだろうか
お爺ちゃんが元日本軍の暗号化担当とかかな
こういう質問があると、ユーザのこと無視した使い難いアプリがある理由がよくわかる。
戦時中にエニグマを解読するのに全てをかけてたんだな
>>887 ユーザに全情報をオープンにすることが、ユーザのためになるのかよwww
>>889 数人かもしかしたら存在もしない読もうとする奴に対して、完全にすることもできない無駄な実装をして、普通に使いたい奴が不便な思いするということだよ。
だいたいデータ改造されて何の問題があるのか ネトゲならクライアントにデータ保存してる時点でアホ以外の何者でもない
>>890 無理ある理論だなーww
ユーザのためにならない情報を見せない実装をすることが、普通に使いたい奴にどんな支障が出るってんだ?
それよりも、もし見せたくない情報が漏れた時に全ユーザに与える影響が大きいなら、対処した方がいいでないかい?
ゲームの内部パラメタなんて漏れて拡散したら興冷めだぞ?
オープンソースのゲームはそれだけで面白くないと言いたいらしい
ARMネイティブの逆アセンブラとかAndroidが出来る前からあるんだが・・・
>>892 例えばモンスターハンターとか昔から解析済みだが影響あるのか。
それが見せると何となく嫌だからって、サーバに接続して、いちいち長いロードしないとプレイ出来ないとか不便。
マルチプレイがあるなら、そこで受け取るデータを検証すればいいし、金銭のやり取りとか改竄が影響を与えるならサーバサイドという、ユーザが手を出せないとこでやるしかない。
そもそもメモリにロードして処理できる以上、完璧に隠すのは不可能。
>>895 そのモンハンではパラメタが漏れることで喜ぶユーザがたくさんいたって事かい?
サーバにつないで遅くなってユーザイライラさせるのが嫌だから、ローカルで持ちたい。って言ってるんじゃん。
「完璧にできないならやる必要が無い」とかいう極論を持ち出すなら会話にならんケド
具体的にどんなゲームのどんなデータがバレたらつまんなくなるのか考えを聞かせて欲しいもんだ 他人に吹き込まれたことをなんとなく妄信してるだけじゃないのか?
具体例ってか俺のゲームの話だけどさ、ボスの防御力パラメタがあるんだよ 普通に戦うと、かなり上手いプレイヤじゃないと倒せない だけど、下手なプレイヤだと全然クリアできない。っていうゲームバランスは嫌なんだ だから防御力パラメタの一部を凄い下げて、試行錯誤すれば誰でもクリアできるようにしたい。 それが漏れて、初見で弱点を突いて楽々クリアーってのが、俺も嫌だしプレイヤも結局つまらないんだよね
>>898 それ攻略本やwikiやネタバレ見るのと何の違いがあるのか
でそのゲームのアクティブユーザー何人いるの? そのうちアプリを解析できる凄腕が何人いると思う? いるとすれば当然このスレも見てるはずだぞw まあほぼいないと思うが
>>899 違いは無いね。知りたくないユーザが不本意に知ってしまう可能性を下げるくらい。
けど、対策しないより対策した方がいいよね
アクティブユーザの少ない過疎ゲーはどうなってもいいんだよ。って話はどうでもいい
>>901 >対策しないより対策した方がいいよね
これの根拠が存在しない
>>902 対策するより対策しない方がいいって理由のがわからん
なんだ、また草が暴れてるのか
>>903 基本的な知識がないのにやり方だけを掲示板で聞いて皆に迷惑をかける
やったとしてもたいして効果が期待できない
そもそもやる必要がない(ユーザ数的に)
やるよりやったほうがいいってより費用対効果じゃないか? 時間無限にあるわけじゃないし、他にやらなきゃならないこともあるだろ
どうやるかも知らんのに効果が期待できないとか、ユーザ数が少ないからとか。そんな返答しかできないのかよ・・・ 迷惑をかけるってのだけはその通りだったな。お互いに。
個人でやるんだから好きにすればいいんじゃね 会社のゲームなら別だが
一方海外のゲームはMOD許可した
>>907 最初の質問者がどこまでわかってたかわからんけど
暗号化して保存するにどこに人に聞く要素があるのかと
ローカルに持ちつつ不可視にしたい という質問に対してデータの具体例なんて脱線し過ぎでしょ どの程度の強度が出せるのか、そこが重要じゃない? 外部アプリで解析出来ちゃう apk抜いてソース解析まで必要 それ以上の面倒なヤツ もしかしたら存在する完璧なプロテクト 結構レベル高いヤツだよ 物によっては公開したくない技術
暗号自体を破る話じゃないので強度ではないな たんに逆コンパイルする人のやる気の問題
質問者のレベル的には、せいぜいデータ覗く人がバイナリエディタで見たけどゴールドの数値とか文字列が直接でてなくてわからんかった でいいと思うんだよね。 でもそれくらいなら質問するまでもないし、気まずくなって俺のゲームはそんな低レベルなもんじゃないんだよ、って見栄張っただけだろう。
誰も遊ばないと思ってインターネットランキングをgetメソッドで通信したら公開当日にチートされたよ ランクインしても何かもらえるわけでもないのに、インチキする人はいるんだって思った
チートできるってだけで嬉しい人種もいる 俺もSQLインジェクション勉強した日は試したくなった
隠すから暴きたくなるんだよ
>>898 別にそのプレイヤがつまらなくなるだけだし、お前が嫌なだけだろ。俺の言った通り、ユーザには影響ない。
ミステリー小説の結末わかるとつまらないからって、本を袋綴じにしたりしないだろ。
記録データの暗号化とソースの難読化で大抵は挫けそうだがなそれで駄目ならあきらメロン
>>896 一度目は何も見ずにクリアして、二度目はパラメータ見ながらクリアすると、二度楽しめると思うぞ。
意識しなきゃ見れないのだから、パラメータ程度なら難読化も不要。
>>898 いい方法を教えてあげる
初回起動時に乱数シードを決定して
下げるパラメータを乱数で決定する
そうすれば、皆が試行錯誤することになる
リリース用に作ったapkを、自鯖からDLしてインストールした時と 同じapkをGoogle Playに公開してそこからインストールした時で アプリの挙動が違うのですが、Google Playに置くと何が変わるのでしょうか?
>>921 自宅鯖の時は新規インストールで、Google playからは上書きインストールだったとか
もしくはその逆
>>922-924 Googleからインストールした初回起動時のみ、画面真っ暗で起動しない
バックキー押して立ち上げ直すと起動し、以後まったく普通に動く
上書きインストール時は自鯖もGoogleも問題なし
アプリ完全に消してGoogleから新規インストール時のみ100%再現
ちょっとapkのdiffとってみます
>>925 自分のアプリ(4種類)ではこの現象は出ないが、ほかのアプリで結構見かける
原因はなんだろう?
google playアプリとの干渉とかってあるものなのかね?
なんかどっかで似たような質問見たな 原因も分かってたような・・・どこか忘れたけど
apkの比較しても差分無いんじゃなかったかな 画面真っ暗ってことは起動時の処理でハマってるんだろうから、ログ見るかデバッガ使った方が良い気がする
端末からapk抜き出して比較したけど差はありませんでした Androidのバグか何かかな…調べる時間ないので迷宮入りの悪寒
乙鰈
books.google.co.jp/books?isbn=4839943230 これ使えない?
dialogfragmentで選択したリストアイテムを元のfragmentに渡す方法がわからねぇぇぇ
>>930 そんな事一回も発生したことない
GooglePlayにAPKが反映されるまで少し時間かかるからじゃなくて?
>>934 横からだが、
何故そんな訳の分からない話が出てくるんだ?
diff取って差は無かったと書いてあるだろ。
>>935 GooglePlayに反映されてるバージョン:1.0
新規に作ったバージョン:1.1
GooglePlayに1.1アップロード
(あれ?GooglePlayからインストールすると動作が違うぞ!)
ローカルの1.1同士をdiff
(同じじゃん!)
しばらく経過して・・・。
GooglePlayに1.1が反映される
>>933 setTargetFragment() で呼び出し元設定、
結果を返すときは getTargetFragment() で呼び出し元のFragmentを取得して、
onActivityResult() で結果を返したりメソッドを呼び出したり。
>>936 >ローカルの1.1同士をdiff
ここがハテナなんですけど。
Playから落としたapkを抜き出してdiffしたって書いてあるだろ。
>Googleからインストールした初回起動時のみ、画面真っ暗で起動しない >バックキー押して立ち上げ直すと起動し、以後まったく普通に動く とりあえずこの現象はそのアプリには関係ないってことじゃないの? バージョンとか端末とか再現性があるのか全く情報ないけど
941 :
a :2013/11/20(水) 22:33:55.21
それ、なんかなったことあって いろいろやって直った気がするんだが覚えてない 勘違いかもしれん、思い出したら書くわ。
942 :
a :2013/11/20(水) 22:36:37.62
あ、思い出した、たぶん関係ないや。 起動時の画面の向きが関係していて、 横向き状態で縦向きアプリを起動したとき その処理で失敗してたことあっただけだった。 スレ汚した、すまん。
>>940 再現性については、100%と書いてあるな。
まだまだAndroidの世界には不思議なバグがあるな
>>938 あ、抜き出したっての見落としてた
無いね
ポートレイトとランドスケープで背景に使う画像を別のものにしていて 何回か回転させるとメモリ不足で落ちてしまいます。 LinearLayoutのandroid:backgroundで設定した画像のメモリ解放はどうすればいいでしょうか?
どこかに参照が残っていてアクティビティ全体がリークしてるんだと思うけど 真っ当に対処するなら jhat か MAT で調査 応急処置ならその LinearLayout に id 付けて findViewById で取得して setBackgroundDrawable とかしてみれば
drawable-landでやってましたがlayout-landを作って解決しますた
>>917 オンゲーなら普通にユーザーに影響ある
無料オンゲーでチート使いに文句あって運営にクレーム入れるる一般ユーザーの存在しらんの?いないとでも思ってる?
お前の頭がイカレてる事だけはよくわかる書き込みだったよ
>>948 オンゲならサーバで処理すればいいと言ったろ。
ハイブリッドなら、俺が言ったように通信時に検証するパッチがモンスターハンター4で出たばかりだろ。
そもそも見られたらって話を、改竄に置き換えてるあたりで、お前ジリ貧。
どうして、どのスレも こうすぐに無駄な言い争いを、おっぱじめるのか。
相当悔しかったみたいだな
952 :
デフォルトの名無しさん :2013/11/21(木) 19:51:13.45
以下のようなコード(一部略)でSDカードのファイル書き込みしていますが ちゃんとfinally句でフラッシュしているのにもかかわらず、書き込みが途中で終わってしまう現象に遭遇しています。 お手上です、バッファドはあまり信用できないのでしょうか。 もし何かアドバイスありましたらお願いします。 BufferedWriter bw = null; try { bw = new BufferedWriter(new FileWriter(file)); for (Iterator<String> it = list.iterator(); it.hasNext();) { bw.write(it.next()); bw.newLine(); } }
finally 句も flush も見当たりませんが
954 :
デフォルトの名無しさん :2013/11/21(木) 19:59:26.48
>>953 すみません、修行が足りなくて長い文が投稿できません。
} finally {
try {
if (bw != null) {
bw.flush();
bw.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
955 :
デフォルトの名無しさん :2013/11/21(木) 20:05:12.34
連投、すみません。 ちなみに端末がスリープ中とかはありません。 バッファドしなければうまくいきます。
WakeLock取ってる?
>>954 普段、catchを入れないことはないから、これで問題ないか分からないけど、外側のtryに対応するcatchはある?
俺はよくtry〜finallyやるけどな。 catchは大本のロジックだけにしてエラー処理は全部そこ。 ただしCloseableのcloseはストリームを開いたサブルーチンの責任。
959 :
デフォルトの名無しさん :2013/11/21(木) 20:24:28.21
>>956 取ってないです、パーミションが気になるので。。
取るケースも試してみます、そのうち報告します。
>>957 省略してましたがもちろんあります。
printStackTrace()をしています。
960 :
デフォルトの名無しさん :2013/11/21(木) 20:31:11.02
>>958 そうですね、でも今回は例外を上にthrowしないケースです。
説明不足でした。
961 :
デフォルトの名無しさん :2013/11/21(木) 21:05:51.38
すみません、もうひとつ情報があります。 上記コードはIntentServiceのonHandleIntent中で呼び出しています。 ウェイクロックは取ってませんが、ファイル書き込みのサービスは画面がスリープしてないときに呼び出してます。 まぁ、たいした量のファイルじゃないのでバッファドしないのが正解かなって思っていますが。
962 :
デフォルトの名無しさん :2013/11/21(木) 21:26:55.23
Eclipse4.3 JRE7 最新のAndroidSDKで設定を 終わらせて、Androidテストプロジェクトを選んで 4.1にチェックいれて次へでThis Projectにして 次へで完了させると ビルド中にエラーが発生しました。 プロジェクト 'テスト' でビルダー 'Android リソース・マネージャー' の実行中にエラーが発生しました。 java.lang.NullPointerException とでてエミュレータを起動させることも出来ません 何がおかしいのか皆目検討が付きません 情報が足りてなかったらすみませんが 何方か解決策をご教示下さい
もしBuffbrdWriterが原因なら、 OutputStream os = new FileOutputStream(file); os = new BufferdOutputStream(os, 32768); Wiiter bw = new OutputStreamWriter(os); にして、newLineは普通に??nを打ってみるとか。 BufferdWriterは文字数ベースで32768文字分のバッファを使うから、マルチバイト文字が混じると下位ストリームに流れるデータが半端な長さになってI/O効率がイマイチ。
>>959 WakeLockはパーミッションいらない書き方あるぞ
WakeLockが要る/要らないの明確な基準てあるんだろうか? スレッド作ってデカいファイルダウンロードとかする場合はWakeLockないと勝手に止められるよね? 一歩自前サービスでBroadcastReceiverを上げてIntentを待機してる時はWakeLockは要らないし使うべきではない。 BroadcastReceiverが受けたメッセージをもとに、サービスのメインスレッドで時間のかかる処理をやる場合、WakeLockは必要? そもそもサービスのメインスレッドで重たい処理をやっちゃだめなのかな?
966 :
デフォルトの名無しさん :2013/11/21(木) 22:08:04.01
>>963 この方法ではうまくいきました。
IO周りのフレームワークはいろいろな組み合わせがあってフレキシブルでいいのですが、
どの組み合わせを選んで良いか分からないって問題もありますね。
質問する人はせめて環境をさらしてください レビューで「アップデートしたら動かなくなった」としか書かれてなくて腹立ったことあるだろう
ないな。そういうやつは無視するし。 つまり最初から非協力的な質問者は相手にしなければいいだけの話。
評価機能がなければ そのスタンスでも良いんだけどな。
veiw pagerでページを0から2までスワイプすると0ページのfragmentの入力内容が失われるんだけど、隣合わないページの情報は破棄しちゃうのかなー。
全部持ってたら落ちるしそういうもん
「アップデートしたら動かなくなった」は同業者のネガキャンだと思ってる もしくは端末か回線の不調
Javaで質問したのですが、 こちらを紹介されて、改めて着ました。 先の掲示板で以下のような質問しました。 現在、JavaでAndroidアプリを開発する研修をうけているのですが、 その中で、HTMLとPHPファイルを端末の方に送信して、 端末側でHTMLとPHPを動かすことを習いました。 そこで思ったのが、 ゲームアプリを開発すると仮定して、 複雑な処理がいらず、画面を表示するだけならHTMLで記述し、 ゲームなど複雑な処理がいる部分はJavaで書き、 サーバーにアクセスする必要のある処理は、PHPで行うという、 言語の使い分けをして、一つのアプリを作るということは、 技術的に可能でしょうか? それとメリットとかあるのでしょうか? 個人的には、HTMLは比較的短時間で完成するものなので、 全てJavaで行うよりは負担が少ないと考えているのですが、どうでしょうか? ご教授いただけると助かります。
基本がわかってない
htmlを表示させるのは、どうやって動かすの?
PhoneGapを使えば、javaクラスからhtmlファイルを使用することができます。 html側は、JavaScriptを1行埋め込むだけで、通常の動きをすることが可能です(CSSや他のJavaScript、画像ファイルも読み込み可能)。
>>973 技術的に可能か?
→可能
メリットはあるか?
→メリットもデメリットも沢山あるだろうね、人によるけど
どうでしょうか?
→覚えなきゃいけないことが山ほどある大変な課題だろうけど、知識や経験には大きく貢献すると思う
>>973 連投失礼、忘れ物
PHPはサーバーサイドじゃないの?
端末側の話なら全く知らないので他の人に任せます。
関係ないけど、誰かスレタテをお願いします。
>>973 普通の考え方だと
端末(スマホ)で動作するのがJavaプログラム
サーバーで動作するのがPHPプログラム
端末とサーバーの間でデータとして送信したり受信したりするのがHtml
Javaがサーバーでも動かせたら楽だよね?(上級者、アプレットのつっこみはなしで)
でも動かせないんだよ。
だから仕方なく面倒だけどPHPという違う言語(サーバー専用の言語)を使用せざるおえないって流れ。
逆に端末(スマホ)側ではPHPプログラム自体を動かす事はできない(上級者、、、ツッコミはなしで)
だから端末(スマホ)側専用の言語であるJavaを使う。
こういう事。
アプリ公開のためアイコン作ろうとしたけど、知識不足とセンスのなさで挫折しそう
>>980 アイコンだけは外注にしてるわ。
500円で書いてもらった
983 :
デフォルトの名無しさん :2013/11/22(金) 06:10:35.17
アイコンはココナラだな
984 :
デフォルトの名無しさん :2013/11/22(金) 06:41:59.07
test
>>970 キャッシュするページ数を設定できるようになってたはず
>>979 >Javaがサーバーでも動かせたら楽だよね?(上級者、アプレットのつっこみはなしで)
>でも動かせないんだよ。
これはひどい。サーバでJavaを使うのは普通だろ。アプレットはクライアント用だし。
けどまぁサーバ用のJavaとアプレットとAndroid用のJavaはどれもAPIが違うからなぁ。
ほかのスレでJavaはJavascriptが流行ったからその影響で使われてるとかって言ってるヤツみたな。 サーバーサイドでJavaが使われてるって知らんヤツ多いのかね。
988 :
デフォルトの名無しさん :2013/11/22(金) 09:44:13.09
>ほかのスレでJavaはJavascriptが流行ったからその影響で使われてる 93〜95年頃の流れを知ってるひとから見れば その指摘は当たってると判る 昔の Java は ( javascript も ) それくらい酷かった
>>988 まあJavaが世にでたのが90年代後半なんで。
え?初めてJava使ったの95年頃だったと思うが… と思ってぐぐってみたら、95年登場と書いてあった 言語ヲタでもないのになんで最初から知ってたんだろう
Javaは90年代後半にappletでもりあがったけどそっちはこけて 2000年あたりからサーバーサイドで定番のポジションになった。 Javascriptの流行とはぜんぜん関係ない流れ。
Javascriptは名前をつける際に当時流行っていたJavaの名前をあやかった らしいけど、とんでもねー話だな。 Perl→Rubyくらいの関連付けは許せるけど、javascriptは似せすぎ
このスレで言うことじゃないけどandroidのせいでjava生き延びやがった
ハードの性能があがったからjavaでも高速に動作する C++のwinmobileよりかなり高速に動作する また、アンドがC++だったら開発効率はかなり下がっていただろうな
Androidが出なくてもガラケーアプリは3キャリアともJavaだったから変わらんよ
Java8の記事をみたらC#のLinqっぽい書き方ができるようになってたな。 Androidじゃ使えないのかな。
>>994 だからAndroidはJavaで動いてるわけじゃないってば
そう AndroidはJavaScriptで動いています(キリっ
めっちゃ悲しい
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。