Androidプログラミング質問スレ Part17
イチモツ! 前スレでスレッドの話してたら新スレ忘れてたでござる
3get
乙かれちゃーん
5 :
デフォルトの名無しさん :2012/01/14(土) 11:07:02.69
スリープになると描画がリセットされてしまうのですがこれは端末側の問題ですか?プログラム側の問題ですか? やり方はアクティビティから描画するクラスを使って描画しています
ちょつ
>>5 アプリ内に描画結果を保持してないのなら、それは当然の結果。
ちょい前に「座標と画像表示はズレないんですか?」みたいな シューティングゲーム的の質問出てたみたいだけど 答えは「ズレないように作るのが絶対条件」 ズレるようなプログラムになるならそれはバグ扱いで技量不足っす リリースしてはいけないアプリでございます キャラや弾がそのうち壁にめり込んだりして、リセットしないとダメな状態になってしまいますわよ
Listviewの文字サイズをxmlでなくソースから指定する方法ないですか?
10 :
8 :2012/01/14(土) 12:42:30.59
もっともスタンダードな方法は〜 メインルーチン{ //このルーチンは1秒に60回呼び出されるタイマーループ ・操作入力取得関数(); //↑プレイヤーからの入力を受け取り、なんからの変数に格納しておく処理 ・移動処理関数(); //↑自キャラや敵キャラ、弾などの座標を移動させる処理の関数。この段階ではまだ当たり判定は必要ない ・当たり判定関数(); //↑自キャラが壁にぶつかっていないか?弾があたっていないか?敵キャラが画面外にいっていないか?などの判定 ・描画処理(); //↑座標の入っている変数を元にグラフィックを一斉に描画する } という感じになるはずだよん。 Androidの場合は「Draw」の中で全部処理する感じになるんじゃないかい? ちなみにこのスタンダードな方法だと、当然無駄も多く、 期待通りの処理速度が出せないなどの処理落ちも出てくるので そこをどう改善し最適化していくかがプログラマーの腕の見せ所さ
SDカード上のバイナリファイル読み込みについて質問があります。 ファイルパスは下記で生成して、 String filepath = Environment.getExternalStorageDirectory().getAbsolutePath() + "testfolder/" + "sample.bin"; で、↓を実行すると、例外「File /mnt/sdcard/testfolder/sample.bin contains a path separator」が発生します。 context.openFileInput( filepath ); なので、openFileInput関数はやめて File file = new File( filepath ); とやってから FileInputStream fis=new FileInputStream(file); とやると、通常に読むことができました。 (filepathは同じ値です。) そこで質問なのですが context.openFileInput( filepath ); に渡すfilepathの内容の何がいけなかったのでしょうか? path separatorって 「/」 のことですよね・・?
>>8 サーフェス使用かな?
縦横比が想定外だったり画面が小さすぎてつぶれるならまだわかるが、
そもそもあなたのプログラムは何でずれるの?
>>11 path separatorって 「/」 のことですよね・・?
そう。ってか、ブレイクポイント置いてデバッグして見りゃいいやん。
>>11 openFileInputの説明読めばcan not contain path separators.って書いてあるんだが
むしろOpen a private file associated with this Context's application package for writing. を理解できてないのか? openFileInputって/data/data/パッケージ名/*のファイル開く関数なんだが
openFileInputでSDカードは読めない おわり
canvas.save()とrestore()ってけっこう重い処理ですか? マトリクスプッシュするだけだから軽いのかな
反日ネット工作員 朝日新聞社→社員約300人 民主党とその取り巻きの資金が入った反日工作会社→数社約450人 朝日新聞の社員は捕まった49歳の編集者を含め新聞記事を書く合間に2chを荒らしている程度とみられているが 民主党が用意した反日工作会社はほぼ24時間体制で工作を行っている 工作範囲は民主党が予め工作費を流している2ch、ニコニコ動画を中心にyoutube、個人のブログなどである。
ListViewの一区間の高さを変えるにはどうすればいいでしょううか。 getViewのところでsetHeightやsetMinimumHeightしたけど変わりませんでした。
デベロッパーコンソールで、1日1〜2回程CursorIndexOutOfBoundsExceptionが上がってきます DAU15000程度、セッション数1日50万↑のアプリなので普通の使い方では起きていないはずだと思います どのような問題が起きていると考えられるか、教えてください
21 :
デフォルトの名無しさん :2012/01/14(土) 20:00:48.20
>>20 その割合だと普通の操作の範囲だと思うよ
みんながレポート送るわけではないし
>>21 仮にそうだとすると、もっと評価も起動回数も落ちてると思うのですよ・・・
23 :
デフォルトの名無しさん :2012/01/14(土) 20:15:46.63
TextWatcherを用いて、エディットテキストに入力した文字列を含む情報をデータベースから取り出し 入力に対してリアルタイムでリストビューに一覧表示するということをやっているのですが リストをタッチしてもOnItemClickが呼び出されません。 public void afterTextChanged(Editable s){ テキストボックスの文字列を取得しデータベースを検索。 検索した情報をアダプタにセットし、アダプタをリストビューにセット } こんな感じでafterTextChanged内で全てやろうとしているのですがこれがいけないのでしょうか?教えてください。
>>23 今度はNoClassDefFoundErrorとか来ました
どこかでapk解析&改変されてるのかも・・・
TimerとToneGenerator使って一定間隔でビープ音を鳴らしたんだけど 聞いてると実際には間隔が微妙に早まったり遅くなったりしてる これを安定させるにはどうすればいい?
>>26 音鳴らすまえに細かく調整してけば?
1分毎なら、50秒くらい経ってから1秒毎に確認してけば、誤差は最大1秒で済むだろ。
WebView.PictureListenerがいつの間にか非推奨になってるんですが これが使えないなら、どういう手法でWebView.capturePictureが 成功するタイミングを知ればいいんでしょうか?
>>27 ごめんちょっとよくわかんない
調整とか確認ってのは何をするの?
ちなみに今は1秒間隔で鳴らそうとしててタイミングが0.3秒くらいずれる事もある
タイミングを司る部分と音を出す部分を別スレッドにしてる?
>>30 同じスレッドでも別スレッドでも状況は変わらなかった
32 :
デフォルトの名無しさん :2012/01/15(日) 01:51:58.60
>>7 いろいろ調べたのですがonCreateで初期に戻るから画面が変わる時に保存して戻ったら復元するってことですよね?
canvas.save();とcanvas.restore;でやる方法は見つけたんですがonPauseとの関連付けの方法がわかりません
viewクラス内にonPauseを置くと働かなくなりクラスの外に置くとクラスにアクセスしてcanvasを保存する方法がわかりません
やり方を教えて下さい
androidって赤外線リモコンのアプリは作れないの? シャープの端末は独自APIを実装していて、作ることができるって事まではググって分かったんだけど、 逆にいうとシャープ以外の端末では赤外線アプリを作成 しようと思ったらハード直叩きしかなく、何れにせよ端末 限定になってしまうってことなのかな?
できない事はない それから、APIがない=できないでもない 以上
>>34 禅問答みたいな事しか言えないんだったらスレの無駄だから別に答えなくてもいいのに
アプリ開発しようと思うんだけどおすすめの本とかある?
昔MSDOSでタッチペン用にドライバー作ったりしたけど、 仕様が公開されてても、結構めんどくさいよ。 独自に解析して作るぐらいなら、コンビニのバイト時給でも 端末買い直した方が、断然楽だなあ。
>>37 自分が使いたいわけではなく、誰でも使えるアプリとして一般に公開したいわけなのだが。。
>>38 そうだが、なんでそんな事を言われないといけないのか意味不明なのだが。。
ちょっとおかしい人ですか?
きいてるくせに文句言ってるからに決まってるだろう
くだらない受け答えのくせに他人の事言えた義理じゃないな
まあ、立場をわきまえろよ、他スレで質問するときも
答えにならないような答えを返してるから荒らしと判断して 文句を言った。 知らない質問なら答えなければいい。 それだけだ。
これ以上のやり取りは、お互い荒らしになるので終了する
>>44 そんな偉そうにするなら、お前は金輪際答えなくていいよ。
だれもお前の回答など聞きたくないから。
知らないならレスしないでください。ウザイだけです。 by Win32API質問箱
>>45 心情は理解するが
軽くお礼でも言って受け流せば
2chでの質問の仕方を知らないようだな
そもそも荒らしはスルーが常識。 文句返す奴も荒らしと同等
>>50 お前が回答の仕方を知らなすぎるんだろ。
小学生は迷惑だからどっか行ってろ。
>>51 >>34 だけだと荒らしかどうかはちょっと微妙じゃないかな?
単に読解力が足りないだけの子ともとれる
つまり乙だな
ソケットで自由に通信できるようになった!楽しいなこれ!
androidのホーム画面でアプリアイコンを長押しすると、指を離すまではアイコンを自由動かすことが出来ますよね。 これと同じ動作を実装したいんですが、どうすれば良いでしょうか? Surfaceviewとか使わないと無理でしょうか?
赤外線関係なしにDalvikはjavaからデバイスファイル叩けるからH/Wがあれば出来るんじゃないの?
>>60 Objectのドラッグアンドドロップ?3.0以降にapi出てる
>>61 やはりHW直しかないですか。
チップによって違いそうだしメーカもその辺の仕様を公開していないだろうから諦めるしかないんですかね。
ありがとうございます。
シャープ端末ならできるやつがある
>>32 canvas.save()って画面を保存する関数じゃないだろ?
毎度お世話になっております。
htmlで言うところのクリッカブルマップみたいな画像はプロパティの指定とかで実現できますか?
それとも、クリックされた座標を取得して、画像のどの部分なのか判定して処理を分けるような
コードを書かなきゃならんのでしょうか?
具体的にやりたいことは地図を表示して、クリックした場所ごとに説明を表示したいです。
↓こんな感じの。
http://winstonwolf.pl/clickable-maps/europe.html あとAndroidの会のメーリングリストに質問投げるような勇気はどうやったら手に入りますかね
>>5 他のアプリ見ればわかるだろ、スリープになってもきえないんだから
メソッドや変数をもっと理解しよう リファレンスは英語だけど日本語で解説してあるところもあるし グーグルをうまく利用すれば理解できる場合もある テキストを読んでもいい
>>70 ここアンカつけない人多いよね。
どれに対する返信だかよくわからないので、付けたほうがいいと思います。
>>68 画像を表示する ImageView の上に透明な View をいくつか重ねてそのクリックイベントを取るとか?
>>72 2chなんて独り言書く人なんてざらだから、そういうのはスルーすればよろし
75 :
デフォルトの名無しさん :2012/01/15(日) 13:22:40.29
eclipseで実行したら以下のエラーが出ました。 emulator: 警告: Unable to create sensors port: 不明なエラー なぜですか?
emulatorで実行してるからでしょ。。 センサーにアクセスするアプリは実機で確認しましょう
77 :
75 :2012/01/15(日) 13:45:42.63
センサーにアクセスせずに 単純にボタンをクリックしたら別画面を開くように作ったんですが センサーにアクセスする設定とかあるんでしょうか?
センサーオブジェクトを取得するコードとかも消してあるの? でないと実際に使わなくてもportあけにいっちゃうとおもうけど
79 :
75 :2012/01/15(日) 14:13:17.64
センサーオブジェクトを取得するコードは書いていません。 書いていないのにportあけにいくんでしょうか?
これ以上はソースを公開したほうがよいです できなければ自力でがんばってください
81 :
75 :2012/01/15(日) 14:20:55.34
プロジェクトをクリーンしてEclipseを再起動したらアプリは実行できました。 「emulator: 警告: Unable to create sensors port: 不明なエラー」に関しては解決していませんが、 今のままで続けていけそうなので無視することにします。 76さん,78さん ありがとうございました。
もう御諦めましょう
いま環境作ってるんだけど、エミュ立ち上げても最初のandroidって 起動画面みたいなのから一向にすすまない・・・ eclipseには、Unable to create sensors portって出てるけど そもそも何もプログラム組んでないっての・・・ どなたか優しい方教えてくだちい PCのスペックの問題なのか?
PCのスペックの良い方がもちろん良いけれど エミュの起動は根本的に遅い 何分かのんびり待ってみると良い
「Unable to create sensors port emulator」でGoogle先生。 出てきた海外のフォーラム?を機械的に翻訳。 この警告は正常です。それは、エミュレータが確立できなかったことを示し 、実際のセンサーのフィードアプリ(実際のデバイス上で実行されている)との接続 エミュレータに値を。もしセンサーのエミュレーションを気にしない場合、単に この警告を無視。ただし、センサーのエミュレーションについてのケアを行う場合、この 警告は、適切にセンサーのエミュレーションを設定する必要があることを言う、という およびエミュレータを再起動します。 なんとなくわかるだろ。 スペック足りんと出るのかな?
>>85 英語そのままじゃなくて何で機械翻訳を張るんだよw
これか This warning is normal. It indicates that emulator was unable to establish connection with an app (running on an actual device) that feeds real sensor values to the emulator. If you don't care about sensors emulation, just ignore this warning. However, if you do care about sensors emulation, this warning would tell you that you need to properly setup sensors emulation, and restart the emulator.
>>63 どうもありがとう
出来ればos2.3で動かしたいんです。
うまく説明出来ないのでちょっと色々試してみます。
この警告は正常です。 実機のセンサー値をエミュレータに送出する(実機上で動く)アプリとエミュレータが接続を確立できなかったことを示しています。 もしセンサーのエミュレーションに関心が無ければこの警告を無視しても構いません。 しかしそうでなければセンサーのエミュレーションを適切にセットアップし、エミュレータを再起動する必要があります。
エミュ遅いから実機にしてみたら、すごい快適
91 :
デフォルトの名無しさん :2012/01/15(日) 17:26:10.20
GLSurfaceViewで描画しているのですが、これは他のアプリの裏で起動させていても描画ループを続けるのですか?
83です 皆さんありがとうございます。 いくら待っても起動しなかったので、2時間ほど放置したら起動してました。 カクカクすぎて使えません。実用性の欠片もありません。 さすがに、9年前に作ったPCじゃきついですね これを機に新しいのにします。
中華タブレット繋ぎっぱなしでおk
96 :
デフォルトの名無しさん :2012/01/15(日) 18:05:16.12
2.3.3ベースで開発をしています。
2段表示のListViewにアイテムが追加されている状態から、、
あるアイテムがクリックされたら、そのアイテムの2段目の文章だけ変更する
というものを作りたいのですが、方法が分かりません。
2段表示のListViewは、下記サイトのように、HashMapやSimpleAdapterを
用いて実現しています(下記サイトを参考にしたわけではく、参考ように貼るため)
ttp://sham-memo.blogspot.com/2010/08/android.html 例のサイトで言うところの
retDataList
をフィールドにして、ListViewのアイテムがクリックされたら(onItemClick内で)
retDataList の該当項目を remove し、新しい HashMap を add する
などを行っているのですが、アプリエラーで死にます。
Debugしてみると、removeの時点で死んでしまいます。
原因と解決方法はわかりますでしょうか?
>>96 原因はエラーを張ってもらえんとなんとも・・・
たぶんそんなに難しくないから
次のやつが答えてくれるよきっと。
>>97 デバッガは、Class File Error を吐いています。
LogCatは、Input event dispathcing time out を吐いています。
が、これ以上の情報は取得できていません。
99 :
デフォルトの名無しさん :2012/01/15(日) 18:37:54.47
グーグルマップでスケール(地図の左下とかに付いている|----500m----|) は表示させることはできますか。
>>94 開発できりゃわざわざ書き込まないさ(´д`)
>>94 2段目の文章書き換えるだけならremoveとかaddとかいらないのでは?それともsiteBの一覧みたいなのが作りたいの?
>>98 Listでエラーが出るとしたら「ArrayIndexOutOfBoundsException」とかだと
思ったんだけど、「Class File Error」だと別問題だったりして…。
一旦、全部破棄したらええ
>>102 俺は Iterator のエラーかと思った
ほらループ中は消せないじゃん?
105 :
デフォルトの名無しさん :2012/01/15(日) 20:41:14.20
>>101 単純に2段目だけ更新する場合、
どうやって書くの?情報プリーズ
values\str.xml からテキストを参照したいのですが文字数に制限ありますか? エラーになったり部分しか取り出せなかったりするみたいです リソース内に置いたテキスト(長文)を取り出すのは一般的にどういう方法を使うもんでしょうか?
109 :
デフォルトの名無しさん :2012/01/15(日) 22:52:41.15
>>107 ありがとうございます。
でもこれってjavaですか?
Java scriptだなこれは
どう見ても違うな。
何も理解せずにキーワードで検索することしかできない
>>107 は残念だな
jAVAsCRIPT
>>111 ありがとうございます。
やはりそうでしたか。
グーグルマップではなくYAHOOマップなら、
スケール表示がありそうなんですが、
グーグルマップだt
>>112 >jAVAsCRIPT
意味不ななぞなぞはよそでおk
115 :
デフォルトの名無しさん :2012/01/15(日) 23:10:37.88
失礼しました。 グーグルマップだと少し難しそうですかね?
116 :
デフォルトの名無しさん :2012/01/15(日) 23:12:30.34
グーグルマップでタイトルを setTitle("TEST"); で変更できるとおもうのですが、 このタイトルを改行したいのですが できますでしょうか。 setTitle("TEST/nTEST2"); これですと、TEST TEST2 と表示されてしまいます。
>>108 です。解説ページ見つけました。自己解決しました。
>>102 デバッグ時にソースのないSDKのクラスを開いたときに出るメッセージでしょ
つまりデバッガの使い方が理解できていない
自己解決したらどう解決したのかもついでに書いて来なよ
99にはjavaで…とは書かれて無いな。 さすがにそこまでエスパーにはなれんよ。
>>106 2段目をtextviewにしてsetText()する
124 :
デフォルトの名無しさん :2012/01/15(日) 23:28:38.99
>>121 自分のパソコンで打つと
¥n が逆スラッシュnになってしまいます。
125 :
68 :2012/01/15(日) 23:29:20.50
>>73 どうもです。
地図のような複雑な形に対応できるのかがわかりませんが、考えて見ます。
126 :
デフォルトの名無しさん :2012/01/15(日) 23:30:33.35
>>122 あ、グーグルマップではなく
アプリを起動させたときの上のタイトルのとこです。
127 :
デフォルトの名無しさん :2012/01/15(日) 23:50:20.42
民主党には朝鮮人など外国人のなりすまし、スパイが約90名在籍している 野田内閣は過半数が帰化人 野田はどうだろうか 韓国人から賄賂を貰い、韓国人の集いに出席している野田は 首になった蓮○はシャブで逮捕歴のある人間と仲が良いな。蓮○自身はやってんの? い-6-1 テレビが言えない民主党のスポンサー=韓国北朝鮮 あとはもうわかるよな
>>130 僕のプロクラムがうまく動きません。
どこでおかしくなっているかは言えません。
アホか貴様は
アプリ配布時に使う証明書って一体何を証明するものなの? なんで必要なの?
>>133 「証明書」という響きで利用者を安心させるため。
実際は役に立ってないが付けておくのがJava文化。
もし開発者のサイトで後悔鍵を配布していたら、
開発者が作ったapkなのか中華な偽アプリなのか一応判別はできる
なるほど ありがとう
TableLayoutでボタンを敷き詰めた画面でフリック切り替えさせようとしてるんですが ActivityのonTouchEventが発生しなくて、 ボタン全部にOnTouchListenerつけたら何とかできたんですが タッチイベントでボタンとかが受け取っちゃうとそこで終わっちゃうんでしょうか?
Activityじゃない普通のクラスでgetSharedPreferencesを取るのってどうすればいいの? getContextから取ろうとしてgetPackageName渡そうとしてダメだったりいろいろ不思議
>>138 contextがなきゃ無理では。
サービスでもBroadcastreceiverでもすぐにContextはとれると思うが。
>>133 アップデートのときにチェックされる
違う証明書だと一旦アンインストールしないとインストールできない
>>138 何でこんな設計にしたのか理解に苦しむけど
Contextはずっとついて回る
どこかのパラメータから貰わないと何もないところからは作れない
>>133 試したことないけど、キーストアファイルが違うと
アプリのアップデートが出来ないらしい。
そこらへんのセキュリティとかが、「AndroidSecurity」
という本に書いてあるので、ぜひおすすめ。
AアクティビティからBアクティビティに移動して、 戻るキーでAアクティビティに戻ったときに、Aアクティビティで処理させたいです。 しかし、戻ったときにAのonResumeもonRestoreInstanceStateも走らないので、処理するタイミングがありません。 ボタンを押したとき、とかでなく戻ってきたときに呼ばれるものはないのでしょうか。
startActivityForResult→onActivityResult
146 :
デフォルトの名無しさん :2012/01/16(月) 12:52:12.47
>>123 ありがとう。
でも、TextViewにsetTextする方法は、
layout上に自分で配置したもののから
findViewByIdしてから実行する方法しか知らないのです。
listViewってitemを複数持っているから、
idで指定するのはできないし、どうやれば良いの??
EclipseのDDMS の FileExplorer上の操作(-ボタン) でファイルを消す事はできるんだけど、 ディレクトリを消そうとすると(-)ボタンがグレイアウトしてボタンを押せず、ディレクトリを消す事ができません FielExplorerでどう操作すればディレクトリを消せますか?
アクティビティ間で値を受け渡そうとputExtraを使って 遷移先でgetintentしているのですが、値が受け取れません。 getStringExtraの引数が間違っている、というわけではなく デバッガで見るとstartActivityするインテントには確かにputExtraした値がmExtrasのmMapに入っているのですが、 getintentで取得したインテントにはmMapには何も入っていないので、引数を何に変えても何も受け取れない状態です。 何か設定した値がリセットされるとか、getintent以外の方法で取得するとかといった方法があるのでしょうか。
>>148 mMapってなんだろうか
Serializableなものじゃないと渡せなかったはず
>>146 getViewイベントのconvertViewでfindViewByIdすればよい
一つのactivityから複数のインテントを発行する場合の処理の順番ってどうなってるんですか?
String url = "
http://hoge ";
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
startActivity(intent);
wait(1000);
String url = "
http://fuga ";
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
startActivity(intent);
こんな感じのソースだとwaitが効かないんですが。。。
やりたいことは時間差でブラウザを立ち上げることです。
>>150 正直、自分もmMapは良く分からんのですが以下のようにputするとそこに値が入るんですね。
startIntent.putExtra("1" , "1");
startIntent.putExtra("key" , "value");
startIntent.putExtra("test" , "test");
でも、遷移先でgetintentで取得したintentのmMapには何も無く
intent.getStringExtra("1");
intent.getStringExtra("key");
intent.getStringExtra("test");
ってしても全部nullしか帰ってこないんですね。
googleAPI と GoogleAppEngine は別物だぞ
>>152 もしかして、その呼び出しをすると、1秒たってからブラウザ立ち上がるって現象起きてない?
メソッドからOS側の機能使うと、
メソッド内で機能を呼び出してすぐ実行じゃなくて、
メソッドが終わったら、メソッド内で呼び出された機能を順番に実行するような動きが基本なんで、
どうしても、数秒後とかに動かしたいなら、
別にスレッドを準備して、時間差で動かす必要がある
>>157 ありがとう!
別スレッドから呼び出す事にします。
アプリのパッケージ名ってどうしてます? やっぱり将来的にマーケットに登録しようとか考えてると、 jp.co・・とかから始めたほうが良いのでしょうか? 個人だとjpのあとに何を入れるべきかもわかりませんし。
>>159 おれは最初に読んだ本の影響で
my.application.○○
にしたままだわ
ドメイン取れよ
>>159 自分のドメインじゃなかったっけ?
取れそうな名前じゃないと意味ないんじゃ?
被んなきゃなんでもいいんじゃね?
xxxがいいんじゃないかな。
govで
167 :
デフォルトの名無しさん :2012/01/16(月) 17:33:08.21
proドメインカッコいい
>>153 extra以外は同じ?
あと、LogCatに飛んでるインテントのログ出るよ。
>>158 waitじゃなくてThread.sleep使うんじゃない?
>>164 俺はドメイン取ってないけど Blogger のホスト名使ってたよ
自分のGmailアドレス逆さしたらエエやん
誰か、NDK-r7+eclipseの環境でネイティブデバックできてる人いる? もしいたら、環境構築からのやり方を教えていただきたい。 現状、デバックシンボルが見つからない状態なのと デバック情報ファイルが*********.o.dという謎の状態になってるのが 怪しいとにらんでる状態で手詰まり。
174 :
デフォルトの名無しさん :2012/01/16(月) 20:23:57.62
ファイルパスからURIパスを取得する方法があったら教えて下さいまし…
ViewクラスのonDrawって強制的に呼び出せない? それともonDrawに記述している処理を別に作って、都度呼び出すのが普通かな? onTextChangedごとにonDrawで再描画したいんだよね
View#invalidate
177 :
デフォルトの名無しさん :2012/01/16(月) 21:51:05.02
普通のXML作成って、XML+スキーマファイル(.xsdとか)って感じなんですが、 AndroidにおけるXMLって、XMLの中に定義も含まれてるのでしょうか?
>>177 適当なサンプル見たらわかると思うけど、外部にある定義を参照する記述がxmlファイル中にある。
名前空間は使ってるところもあるけど全部じゃないしスキーマもないよ 定義なんて処理系が勝手に検証に使うだけで別に必須じゃない
>>159 正直なんでもいい。
ただ恥ずかしいのはやめとけ。
このコードについて質問
http://ideone.com/OnqIb 画面にタッチすると AlertDialog でメッセージを表示するだけの単純なアプリ
自作メソッド showMessage() を呼ぶ事により 1 発で Windows や DoJa のような
(ボタンを押すまで待つ) メッセージボックスを出したい
が、その中で View#showDialog() へ渡った制御が AlertDialog の実際の表示が
済む前に返って来てしまう
つまり画面には、コメント <1> の地点で "表示したよ" が表示された後にダイア
ログが表示されてしまう
それならと、AlertDialog でボタンが押されるまで dialogShown メンバをポーリング
しようとしてコメント <2> のコード (Thread#sleep()) を挟んだら、ハングアップして
しまった
何がまずいのか、どうしたらいいのかお知恵を拝借したい
>>182 いかなる理由があってもUIスレッドを止めてはいけない
閉じられたあとの続きの処理はsetPositiveButtonのonClickに書く
>>159 8文字くらいのランダム文字列
185 :
177 :2012/01/16(月) 22:43:25.63
>>178 >>179 ありがとうございます
いまいちXMLの仕様について掴めないのですが、普通のXMLとは違って細かく定義作れるわけではないのでしょうか・・・
>>184 ありがとう、UI スレッドについては了解した
でも、目的は呼び出したらダイアログのボタンが押されるまで制御を返さない
メソッドの作成なので、setPositiveButton の onClick() じゃ適合しないんだ
>>186 どうしてもというなら呼び出しから別のスレッドでやるしかない
そんなアホなことするより、コールバックをパラメータとして受け取って
showMessageBox("兄貴と私", "ボディービル", new OnClickListener() {
public void onClick(DialogInterface dialog, int which) {閉じられた後の処理});
じゃいかんの
最後のパラメータはsetPositiveButtonの引数に渡す
>>159 こういう時のためのnameドメインだろ
>>187 うーん、どうも俺が考えている事はそのまま実現できなさそうなので、
もうちょっと考えを練ってみることにするよ
190 :
デフォルトの名無しさん :2012/01/16(月) 23:33:26.85
プログレスダイアログを消えないようにするにはどうしたらいいんですか? 縦横回転すると消えてしまいます 横に使いたいので横に固定したんですが007shは開いた状態にすると固定を無視して縦になり初期化されます プログレスダイアログが消えたときに復活させるかonCreateをさせない方法を教えて下さい
左から画面の幅の30%だけ離れた位置にボタン置きたい時ってどうするのがベスト? 今はAbsoluteLayout使って、OnCreateの中でも解像度取得して位置指定してるんだけど AbsoluteLayoutが非推奨なのが気になる
192 :
デフォルトの名無しさん :2012/01/16(月) 23:54:49.46
質問 MacOSXで開発しているけど、 エミュレーターで実行するときにエミュレーターのMENUボタンを押さないとプログラムが開始しない。 こういうものなのでしょうか?
>>185 何のXMLかによるね。
マニフェストやレイアウトに関しては、定義はきっちり決まってる。
独自のデータなら、勝手に定義すればいいよ。
>>193 ありがとうございました。
HTMLだったら楽だったんですが・・・
テーブルみたいなのを組んでそこにボタン埋め込めたかったので
>>192 本物の携帯と同じく起動時は画面ロックされているので
MENUキーは画面ロック解除
197 :
デフォルトの名無しさん :2012/01/17(火) 00:56:10.10
>>191 ・LinearLayout をいくつか入れ子にして android:layout_weight とかで 3:7 に調節する
・ViewGroup を継承して 30% 離れた位置にボタンを置く自前のレイアウトクラスを作る
・非推奨とか (゚ε゚)キニシナイ!!
>>186 呼び出した後に無限ループでも作ってダイアログの結果でループ抜けるとか。
意味あるのかわからんけど
プログレスバー系の更新が上手くいかないんだが・・・ 処理の流れは@ボタンをクリック AThreadでダイアログプログレスバー表示・更新 B検索関数起動 Cプログレスバーの値追加 何だけど、検索ツールが終わってからじゃないとバーが可変しないんだ for(検索回数が複数あるため、最後までループ) { dig.show; new Thread(new Runable() { public void run() { mHand.post(new Runable() { public void run() { pgBar.setSecondaryProgress(p); dig.setProgress(p); dig.dismiss(); } }); } }).start(); search(loopCnt); //検索プログラム p = p + 20; //バー変動 } 希望してる動作は、ボタンをクリックしたらダイアログプログレスバーを表示、 検索ループが1回終わる毎に、バーを更新して0→20→40→60といった形になってほしい だけど、実際の動作は、検索終了後に一気に100% 何が悪いのだろう?
202 :
201 :2012/01/17(火) 09:12:10.71
あ、すみません。 pgBar.setSecondaryPrgoress(p);は ダイアログで表示させる前に、ただのバーとして作った奴でしたので 関係ない一行です。
203 :
201 :2012/01/17(火) 09:18:11.42
すみません、プログレスバーの時は最初からバーゲージが出てるので上記の通り 更新されないでしたが、プログレスダイアログ+バーの場合 まずダイアログが表示されない感じです。 検索が終了後ダイアログが表示されます
>>203 そりゃdismissのせいじゃないの?
そういう処理はAsyncTaskのが楽だと思うけどね
というか、スレッドにするところがおかしくないか?それ。 dlg.showの位置にしろsearchの位置にしろ根本的になんか判ってない感じがするが
>>204 digmissを //でコメントアウトしましたが変わらず
@検索→※フリーズ見たいな状態→ダイアログが表示→Intentで別Activity画面へ偏移
このような処理みたいになってしまいます。
※部分の際に、ユーザーに対して今処理中だから待ってね的な画面を出したくて
ダイアログ表示を入れようとしてるのですが終わった後にしか出ない&Activity偏移するさいの
一瞬にしか表示されない・・・
Asynctask調べてみます。
>>205 JAVAは全部独学でやってきて今回初めてThreadを使うのですが、
A→B→Cと進んでいく処理を
A→B
→C
といった形になるんじゃないのかな?と思ってるのですが
本当はThread使う必要あるのかな?と思ったのですが
プログレスバーを調べてみると、リアルタイムにバー更新をするには
Threadが必要といったサイトが多かったので、導入しました。
>>207 Threadを使わなきゃいけないってのは、UIスレッドで処理中はUIが更新されないので
処理途中でUI更新するにはUIスレッド以外で処理しなきゃいけないって事。
今の状態だとUIスレッドで重い動作(search)をして別スレッドでsetProgressしてる。
多分何のためにThread使うのか理解してないからだとは思うけど。
あとdlg.showは一度でいいんだからループの外だろうな
>>207 検索プログラムとやら自体をスレッド上に持っていかないと
for ループごとにプログレスバーを書き換えればいいんだから、スレッド使わなくていいんじゃ? それか別スレッドで検索かだけど、まずスレッドなしでやってみたら?
>Threadでダイアログプログレスバー表示・更新 これが間違ってるね プログラムははじめ一つのスレッドで動いてる それがUIスレッド ダイアログプログレスバーはUIスレッドで動かすもの これを動かすために別スレッドを作るのではない で、別スレッドを作って処理するのはsearchを含むfor全体 このforの最中にときどきUIスレッドで動いてるダイアログプログレスバーを更新する 別スレッドからUIスレッドのUIを更新するときはまた特別な作法が必要でHandlerクラスを使う
詳しくは忘れたけど、javaのHandlerクラスとandroidのHandlerクラスがあって、
>>201 はjavaの方のHandler クラスを使ってる
基本的には、描画関連はメインのスレッドで行い、描画を止めたくない処理などに別のスレッドを生成する。 というようなノリでいこうず
214 :
201 :2012/01/17(火) 10:35:48.71
なるほど、Threadの使い道は何となくは
>>212 一応importリスト見てみたら
import android.os.Handler;
しかなHandlerはなかったので、androidの方が使われてると思うのですが
>>210 Thread無しで、処理してるとやはり結果は変わらなかったのThreadを使って見てる感じです。
215 :
201 :2012/01/17(火) 10:41:03.41
今修正してみたのですが try { dig.show; //ダイアログ表示 new Thread(new Runable() { public void run() { mHand.post(new Runable() { public void run() { for(複数回検索終わるまで) { dig.setProgress(p); //バーの更新 search(loopCnt); //検索プログラム p = p + 20; //バー変動 }}});}})).start(); } といった形に直したのですが、ダイアログがやはり表示されません… 他の部分が何やら悪い処理をしているのでしょうか? サーチボタン以外をクリックした際に、toastで○○をタッチしましたといった処理は 出るのですが、このサーチボタンの部分だけ上手く出ないのです
216 :
201 :2012/01/17(火) 10:44:57.36
digに関してはグローバル変数として private ProgressDialog dig = null; onCrate内にて dig = new ProgressDialog(MyActivity.this); dig.setTitle("ProgressBar"); dig.setMessage("データを検索中"); dig.setMax(100); dig.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); という形で初期設定を行なっています。
217 :
182 :2012/01/17(火) 10:44:58.51
すまん、やりたい事はこれなんだ
リソースの取得を試みて、もしリソースが見つからなかったらエラーメッセージを表示後
ただちに終了したい
Drawable resGetDrawable(String targetName)
{
Drawable drawable = null;
try {
Resources r = getResources();
int id = r.getIdentifier(targetName, "drawable", getPackageName());
if(id == 0)
throw new Exception("画像ファイル \"res/drawable-*/" + targetName + "\" が見つかりません。");
drawable = r.getDrawable(id);
} catch(Exception e) {
showMessage("resGetDrawable", "次の例外が発生しました:\n\n" + e.toString());
android.os.Process.killProcess(android.os.Process.myPid());
}
return drawable;
}
void doSomething()
{
Drawable drawable = resGetDrawable("aaa");
Bitmap bitmap = ((BitmapDrawable)drawable).getBitmap();
}
このコードのままではダイアログが表示される前に killProcess() が動いてしまって意味
無いし、
>>187 のやり方ではダイアログが表示される前に resGetDrawable() の呼出し後
にその戻り値が使われてしまうので問題がある
resGetDrawable() の結果を if 文や try 文で判定するのは、煩雑になるのでできれば
やりたくない
>>199 の言うように無限ループ作った結果が
>>182 だよ
内包の仕方が違うと思う 多分こんな感じ try { dig.show; //ダイアログ表示 new Thread(new Runable() { public void run() { for(複数回検索終わるまで) { mHand.post(new Runable() { public void run() { dig.setProgress(p); //バーの更新 }}); search(loopCnt); //検索プログラム p = p + 20; //バー変動 }}})).start(); }
>>215 Handler.postってのはHandlerに処理を委託する感じ。
HandlerはThread入る前のUIスレッドで作ってるだろうから
そこで処理するのはUIスレッドで行わなきゃいけないことだけ。
この場合はsetProgressだけだな
220 :
201 :2012/01/17(火) 11:08:45.21
なるほど、HandlerはUIに直接反映したい動作を入れて ThreadはUIが止まらないようにするための重い処理を入れる感じですね。 確かにこれをやると、高速で画面偏移が行われるようになりました。 ただ、このままだとサーチが終わる前にActivityが偏移してしまったので try { dig.show; //ダイアログ表示 new Thread(new Runable() { public void run() { for(複数回検索終わるまで) { mHand.post(new Runable() { public void run() { dig.setProgress(p); //バーの更新 } }); search(loopCnt); //検索プログラム p = p + 20; //バー変動 } Intent itt = new〜〜 itt.addFlags〜〜 startActivity(itt); } }).start(); で無事ダイアログ表示&バー更新&検索反映が出来ました。 ありがとうございました }
×画面偏移 ○画面遷移
222 :
201 :2012/01/17(火) 11:20:03.78
せんいでしたね、恥ずかしい失礼しました。。
>>217 画像ファイルが見つかりません例外をそこでキャッチせずに、もっと外側のメソッドまで飛ばすといいんじゃない
それで一番外側のメソッドか、あるいは UncaughtExceptionHandler ででも拾って、ダイアログを表示
ダイアログが閉じられたら終了
>>223 もしかしてその方法って、resGetDrawable() 及びこれを呼んでるメソッド全てに
throws 付けて回らなきゃいけないって事かな
そういうの出来ればやりたくないんだけど・・・わがままかな
後、Activity#on***() には throws 付けられないみたいだから、resGetDrawable()
がそこから使われている場合は UncaughtExceptionHandler は使えないみたいだ
RuntimeException と Error とその派生クラスは throws 付けなくていい
HOMEに戻るとか、Activityを遷移するとか、 苑画面からはなれるタイミングで処理を追加したくて、 onPauseに処理を仕込んでるんですが、 最近画面が横になった時にも呼ばれてることがわかりました。 画面が回転していることを認識する方法か、 もしくは、遷移やHOMEに戻る場合のみに呼ばれるイベントがあれば教えて下さい。
>>225 そうか、ありがとう
Java よく知らないまま書いてるものだから・・・
ところで、uncaughtException() 内部でダイアログが閉じられたら終了の判定をする
方法はあるんだろうか
>>228 こういう方法はどうだろう
エラー表示を別のアクティビティにする (android:theme 設定してダイアログの外見にしてもいい)
その別アクティビティを android:process 設定して別プロセスにする
エラーが発生したらその別アクティビティ (すなわち別プロセス) を起動して自プロセスは即座に死ぬ
自プロセスが死んでも別プロセスは生きてるからエラーは表示される
>>226 イベントは無いんじゃないかな、ただ回転したかならわかる
>>229 もうちょっと別の方法考えてみて、何も思いつかなかったらその方法で行ってみる
サンクス
>>226 調べるのがめんどくさいから具体的には書けないけど
回転すると基本的にはcreateしなおされる
AndroidManifest.xmlに何かを書いたらイベントが呼ばれるようになる
最近はこういう作りをするのが流行りなのか? VBから流れてきたおっさんの俺にはちょっと理解不能… ファイルをチェックする関数を作ってその戻り値でいろいろって考えてしまうし、いきなりexception投げて終了ってのも考えにくいわけだが、、、 時代に取り残された感が半端ないw
234 :
デフォルトの名無しさん :2012/01/17(火) 14:19:32.66
AndroidでロケーションARをやっている人っていますか?
235 :
231 :2012/01/17(火) 17:37:54.19
>>232 jniで確保したメモリも自動的に解放される?
されない
>>236 てか、マニフェストに android:configChanges="orientation"って
しておけば、画面が回転してもonPauseが呼ばれなくなる
それでいいんじゃないの?
横画面未対応で良いならそう思うわ
>>239 android:screenOrientationと勘違いしてないか?
ウィジェットにカメラのプレビューを表示したいんだけどどうにかなりますか? surfaseviewがうまく動きません
242 :
デフォルトの名無しさん :2012/01/17(火) 22:30:30.30
┌───┬─┐ │ │ │ │ │ │ │ │ │ │ ├─┤ │ │ │ │ │ │ │ │ │ └───┴─┘ こういう図を作って、3つの穴の全てにそれぞれタップすると当たり判定があって 数値を書き込めるものを作りたいのですが、どうやって作ればいいのでしょうか? ボタンとかテキストエリアとか配置してみたのですが、なんか相対的な(?)配置ばかりしか決められないような感覚が・・・
つテーブルレイアウト
scrollViewにtextView入れて使ってますが scrollViewで再表示と同時にスクロールの位置をトップに合わせるには scrollView.のどれを使えばいいでしょうか?
>>241 ウィジェットにsurfaceviweて使えないんじゃなかったっけ?
それが出来ないから動画流すウィジェットがないって、
前に読んだ気がする。
246 :
242 :2012/01/17(火) 22:51:31.45
>>243 ありがとうございます。
HTMLみたいなテーブルレイアウトってできるんでしょうか
手元の本にはなかったので・・・・
>>244 は scrollView.scrollToでできました。
>>246 みたいなが、どこまでを指すかわからんが、できると言っておこう。
テーブルレイアウトがのってない本って・・・・・・・ 手抜き感はんぱねえな
>>246 ひだりがわのセルを結合するみたいなことがしたいと思うんだけどテーブルレイアウトならできるよ
252 :
246 :2012/01/17(火) 23:52:04.32
>>248 >>251 ありがとうございました。
>>250 Javaからはじめよう アンドロイドプログラミング インプレスジャパンです
テーブルレイアウトでググればこの本より詳しいサイトが出てきて買って損した気持ちです
Javaすら知らない人向けか そういう読者向けの本なんだからそれはそれでいい
おれにとってはJavaのリファレンスは とほほ が一番わかりやすい
実際本よりネット検索のほうが役立つこと多いよね 本はサンプルをダウンロードするためのものになりつつある
257 :
デフォルトの名無しさん :2012/01/18(水) 00:51:57.27
アクティビティAから表示に時間のかかるアクティビティB(viewクラスの読み込みなど)に移動するときにスムーズに見せるにはどうしたらいいですか? なにもしないとAからBに行くときにAの画面でとまって処理がおわってからBに行くので
SDカード上のファイルって、けっこうすぐ壊れますか? 読み込みくらいでしか触ってないのにファイル長0で読めない状態になってしまったことがあります。
少なくとも、俺の人生の中で、SDだろうがCFだろうがMSだろうがSMだろうが、フラッシュメモリーと呼ばれる類いのものが壊れた経験は一度たりともない
分かってて使うもんだがノーブラはよく壊れる。ブランドでもsundiskはよく壊れる
俺の場合カメラのSDカードが9年で壊れた(年に30枚も撮らない) PCのメモリーが4年で壊れた
classとかの書き込み速度って影響すんのかな。
【韓国BBS】日本は時給が高い!「うらやましい」
●スレ主:千年焼酎
駅前でのティッシュ配りが時給720円、マクドナルドが平日900円、土・日・祝日の勤務で時給1300円。日本に働きに行こう。
●あなたの中にでも
放射能がなければ日本で仕事をしたい。
●ウィチン
大学生900円以上、22時以後には1125円以上?物価の差はそんなに違わないのに、2倍以上。単純にうらやましい。
●dltnsrn
当然じゃないですか。 日本がわが国より豊かな国で生活しやすい国なのに。こうしたことは小学生も知っているはず。
●キースハワードs
時給が高いから、日本にはバイトだけで暮らすフリーターがいっぱい。
●コムンミル
良い暮らしと、アルバイト代はあまり関係ないのでは。
●クチュプトゥン
韓国は基本12時間、体力が無くなりへとへとになる時まで仕事をしてやっと生活ができるのに。
●dltnsrn
(韓国は)それでいて最低賃金も低いところが多いです。
●ミョンタムジョンノネム
わが国もバイトだけで暮らすことはできます。 ただし貯蓄ができないだけ。
http://news.searchina.ne.jp/disp.cgi?y=2012&d=0116&f=national_0116_122.shtml
俺もそんなに時給がいいとこに行きたい
androidはプロパティファイル(properties)に定数定義して使用するとかできますか? 自動的に作られる project.properties は 「変更内容は消される」みたいなコメントがあるので無理なようでした
assetsに突っ込めば?
いかん ねむい・・・
>>265 リソースでどう?
<integer name="TEISU">1</integer>
>>117 おまえなー、自己解決もいいけど、どうやって解決したか書いていけよ。
その解説ページのURL貼るとか、そんなに手間がかかるもんじゃないだろ?
プログラマーのコミュニティーつてのは、そうやって発展してきたんだよ。
>>269 googleで解説ページをみつけました。
いかん やはり眠い…
ソースコード上で16進数は0x1234 で表記できますが、 2進数は表記できますか? int a = 11011010B; のような事は可能でしょうか
-target jsr14は?
2進16進は脳内変換できないとダメってことだ。
280 :
デフォルトの名無しさん :2012/01/18(水) 18:12:32.44
Activityがホームボタンとかで非表示になっているときに、 再び自動的に表示させたいんだけど、どうすればできるでしょうか?
8 4 2 1 8 4 2 1 ハァハァ…w ↓ 0 0 1 1 0 1 0 1 に、2進数…ハァハァw ↓ - - 2 1 - 4 - 1 け、計算過程…ハァハァ ↓ - - 2+1 - 4 + 1 た、足すお!…ハァハァ ↓ 3 5 じゅ、16進数変換…ハァハァ 0x35だお!
>>280 壷ロイドがそんな動きしてたような、おーぷんそーすだから見てみれば
了解。 ちょっと壷の中覗いてくる。
startActivity呼べばいつでも普通に表示させられると思うけど ユーザーからしたら迷惑じゃね
>>274 int a = Integer.parseInt("11011010",2);
じゃダメ?
やるとしたらAlarmManagerに登録すれば出来るんじゃないか? 迷惑だとは思うけど
288 :
280 :2012/01/18(水) 18:50:10.56
小さなメダルは見つからなかったよ。 onStopでサービスを動かして、サービスから再び呼び出す、 みたいな手段が今作ってるアプリに合ってるようなので、 そういう方向で対応することにします。
>>274 16進で書いて、必要ならコメントに2進表記もつけとくのがいいかと
291 :
デフォルトの名無しさん :2012/01/18(水) 22:51:29.97
エミュレーターを実行するとしばらくして「failed to install sample.app〜」と出てきて強制終了するのですがどうしてでしょうか?
sample.appのinstallがfailしたから
293 :
デフォルトの名無しさん :2012/01/18(水) 23:12:30.42
どうすれば成功するでしょうか? ちなみにほかのプログラムは起動します
どなたかエスパーの方、
>>293 がおさがしですよ
質問用のテンプレを優しい誰かが作ってくれるに違いない
296 :
デフォルトの名無しさん :2012/01/18(水) 23:50:15.73
297 :
デフォルトの名無しさん :2012/01/18(水) 23:54:09.30
これが天プレですね
パーミッションとかじゃないの android.permission.BLUETOOTH とか
299 :
デフォルトの名無しさん :2012/01/18(水) 23:58:09.05
■やりたいこと プログラムをエミュで起動させたい ■試したこと アップデート、再起動 ■症状 「failed to install sample.app〜」というエラーが出る ■補足 ほかのプログラムは起動する、ソースにエラーは無し ■環境 Android: 2.2 ■コメント Help me!!
300 :
デフォルトの名無しさん :2012/01/18(水) 23:59:21.46
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> <uses-permission android:name="android.permission.BLUETOOTH" /> は入れてる。 ブロードキャストされているインテントすべてのログ取る方法とかないすかね PowerAMPはなんのインテント契機にしてるんだろう くそう、即出来るだろうと思ったのにぃぃぃ くやしい
301 :
デフォルトの名無しさん :2012/01/19(木) 00:00:50.76
>>299 一度sample.appをuninstallしてもダメ?
302 :
デフォルトの名無しさん :2012/01/19(木) 00:08:42.25
>>301 アンインストールなんてあるんですね
やってみます
インテント名間違ってない? リファレンスでは android.bluetooth.adapter.action. とか android.bluetooth.device.action. とか android.bluetooth.headset.profile.action. になってるような
304 :
デフォルトの名無しさん :2012/01/19(木) 00:32:59.53
■やりたいこと バックにまわったときにサーフェイスビューの描画またはサーフェイスビューのクラスの中の変数を保存しまた開かれたときに復元 ■試したこと DBに描画データを保存して復元 もっと簡単にできると思った ■症状 ■補足 サーフェイスビュー 描画 保存で調べたがcanvas.save/restoreや画像として保存のことしか出てこない ■環境 Android: 2.3.3 SBM007SH ■コメント よろしくお願いたします
305 :
296 :2012/01/19(木) 00:40:18.61
"android.bluetooth.a2dp.profile.action.CONNECTION_STATE_CHANGED" "android.bluetooth.intent.action.HEADSET_ADUIO_STATE_CHANGED" "android.bluetooth.headset.profile.action.AUDIO_STATE_CHANGED" "android.bluetooth.adapter.action.CONNECTION_STATE_CHANGED" "android.bluetooth.intent.action.REMOTE_DEVICE_CONNECTED" とかもろもろ試してるが どれも拾えない amコマンドで直ブロードキャストした際にはちゃんと拾えてる事は確認できてる。 BOOT_COMPLETEDとかメジャーなブロードキャストは拾えてるから ブロードキャストの拾い方に問題はなさそうなんだがなぁ
306 :
デフォルトの名無しさん :2012/01/19(木) 00:52:14.88
質問です。 AlertDialogのsetItemsでリストをアラートで出したいのですが、 リストの中身をテキストではなく、画像にしたいのですが どうしたらいいでしょうか?
308 :
306 :2012/01/19(木) 01:52:40.37
>>307 最近ってことは、OS2.2だと難しいってことですか?
>>308 AlertDialog の setView 使えばできる、確か
311 :
306 :2012/01/19(木) 02:19:16.54
>>310 ありがとうございます。ちょっと調べてみます。
>>309 ちょっと勘違いしてましたw APIではないんですね。
最近って言葉で早とちりしてました
312 :
デフォルトの名無しさん :2012/01/19(木) 03:27:26.53
レイアウトのXMLの中にあるViewがあって、 そのViewの中に画像があって、 その画像にonClickイベントを付けてたとします。 で、そのViewをアニメーションで場所移動すると 画像も一緒に移動するわけですが、 その画像をクリックしてもイベント発火せず、 画像が元に表示されていた場所をクリックすると イベント発火するのですが、 ちゃんとイベントも移動(表現変だけど)させるのって どうすればいいでしょうか?
>>312 アニメーションさせた位置にviewをもってくるか、アニメーションさせた位置にとイベントつけておく
>>305 これは試した?
android.bluetooth.adapter.action.STATE_CHANGED
メニュー画面にA画面へのボタン、B画面へのボタン、、、といくつか遷移用ボタンを並べているんですが、 同時に押された場合、両方の画面が立ち上がってしまいます。 これはどのようにしたら一画面のみ立ち上がるようになりますか? 画面毎にActivityは異なります。
>>316 片方押されたらもう一方は押せないようにするとか
>>316 synchronizedと押されたことを保持するフラグを持っておけば出来そう。
バッテリーの持ちが悪いと言われましたがお手上げです これは気をつけとけ!ってのありますか?
>>315 改変してないのに勝手に著作権者を名乗るなよ
321 :
315 :2012/01/19(木) 12:41:01.49
>>320 お、じゃあ改変してないなら何も書きこまないでそのまま貼りつければいいだけなのかthx
>>321 そのままこれ使ってますって、
名前とリンクはっとけばいいんじゃ?
323 :
315 :2012/01/19(木) 14:28:32.29
ライセンス条項くらい読もうよ。
325 :
315 :2012/01/19(木) 14:53:58.44
>>324 読んだけど理解できなかったんだ、リアルSEにもきいたんだが
そういうLicense系のは入れたこと無いしなワカンネって言われておわた
ググっても今一さっぱりだった
@スマートフォン本体のbackボタンを押して、前Activityに戻る時のActivityライフサイクル Aプログラム内でButtonを実装し、そのButtonが押されたときfinish();を呼び出して前Activityに戻る時のActivityライフサイクル どちらも、onPause()→onStop()→onDestory()、の順でActivityを破棄しますか? それとも、違うサイクル・・・?
同じ だって Activity#onBackPressed はデフォルトで finish() 呼んでるだけだし
少し前に作ったアプリが変更できなくなったのですが、何か情報をお持ちの方はいないでしょうか。 表示されるテキストを適当なものに変えたり、 唯一のアクティビティのoncreateでログを出すようにしてもログが出ない。(恐らくソースの変更が反映されてない。) 同様にoncreateにブレークポイントを置いても反応しない。というか何処においても反応しない。 プロジェクトをアンインストールして、端末、パソコンの再起動をしてapkを入れなおしても変わらず、 app_nameを変更するとステータスバーに表示される名前は変わる、ソース上で構文エラーを起こすと実行できなくなる。といった具合です。 実行すると必ずエラーになるソース例えば以下のようなソースをoncreateに入れてもエラーになりませんでした。 String a = "test"; a = a.substring(-10,100); ですので、やはりソースが反映されていないか、 ほかのプロジェクトを実行していのではないかと思ったのですが、 app_nameでプロジェクト名は変わる(ホーム画面のアプリ名も変わる)ため、その可能性もありません。 プロジェクトをエクスポートして、ワークスペースから削除、インポートしなおして実行しても変わず手詰まり状態です。
Activityにはoncreateなんてメソッドは無いからなあ。
>>315 API(ライブラリ)を使ってる自分のソースにAPIのLicense表記をコピペしようとしてる?
多分そのままだと、自分のソースがApacheLicense2.0ライセンスでかつ
著作権はライブラリの作者だと宣言したことになるんじゃない?
>>327 ,328
ども、ありがとうございますm(_ _)m
すいませんご存知でしたら教えて下さい。 NDK側のCコードからアプリのパッケージ名を取得する手段ってありませんでしょうか?
>>333 パッケージ名はActivityとかのメソッドにあるんで、
それをNDK側から引っ張ってくることになる。
>>315 Androidの設定アプリでは端末情報-法的情報-
オープンソースライセンスに明記してるので
同じようにすればよいのでは
自作したアプリから facebookに画像を投稿したいんだが facebookのAPIつかわないとだめかな? intentで画像渡すだけでいけるならそうしたいんだけど
>>336 facebook android sdk 使えば、facebookアプリの有無で勝手に分岐する
XMLで定義したマスタデータを使いたいですが、 SQLiteOpenHelperのonCreate でassetを呼び出す方法はありませんか?
文字列リソースを整理して利用する方法はありませんでしょうか? 今のところR.stringに全てまとめられますが、R.activityA_stringとかR.activityB_stringとかで参照できると理想です
>>339 Rを参照して自前の定数クラスを作ることはできる
public final class R2 {
public static final int hoge = R.string.hoge;
}
みたいな
xml の方も名前はなんでもよく、複数あってもいい
string_R1.xml, string_R2.xml みたな
あとは xml から R2 クラスを自動生成するツールでも書けば
>>339 自分はファイル分けて、ファイル名を名前の先頭につけたりしてる。
config.xmlだったら、name="config_foo"とか。
342 :
296 :2012/01/19(木) 22:04:23.55
あばばば解決しますた。
BluetoothDevice.ACTION_ACL_CONNECTED
でした
>>314 レスサンクス
■やりたいこと テスト実施時に常に正常にキー入力が行われるようにしたい。 ■試したこと int[] keys = {KeyEvent.KEYCODE_1, KeyEvent.KEYCODE_0, KeyEvent.KEYCODE_0, KeyEvent.KEYCODE_PERIOD, KeyEvent.KEYCODE_0,KeyEvent.KEYCODE_0}; for(int key : keys) { sendKeys(key); getInstrumentation().waitForIdleSync(); } や、 sendKeys(keys); getInstrumentation().waitForIdleSync(); といった方法を試しましたが効果がないようです。 ■症状 テスト実施時にsendKeysでキー入力をエミュレートしているが 100.00と入力しているつもりが10.0とかになってしまう時があり テストが通ったり通らなかったりする。 デバッグ実行にすると通る確率が極めて高い。 ■環境 Android: 2.2 T-01C ■コメント よろしくお願いたします
>>340 管理コストorツール作成コストがきつそうなのでやめときます・・・
>>341 やはりプレフィックスしかないですかね。ありがとうございます
>>343 テストコードが載ってないんで推測だが
runOnUIThread呼んだあと、waitForIdleSync呼ばずにsendKeysを呼んでるとか。
あと、sendKeysの後にwaitForIdleSyncは不要。
sendKeysの中で、最後にwaitForIdleSync呼んでるから。
ちなみに、エミュレーターでは動くの?
347 :
デフォルトの名無しさん :2012/01/20(金) 00:33:37.89
タブレットかスマフォか判定するのに最適な方法は何よ? Small normale large xlargeだけでいけるのか?
348 :
デフォルトの名無しさん :2012/01/20(金) 01:13:59.05
C++でもいけますか?
>>348 何が?Androidアプリをつくるのが?
前画面にGLで描画するだけのアプリでなければJava必須と思ったほうがいい
351 :
350 :2012/01/20(金) 01:36:35.80
×前画面 ○全画面
>>347 4.0未満はPhone UIとTablet UIが別だからバージョン見る
4以降ならcom.android.systemui.SystemUIServiceのソース嫁
>>347 android design に基準が書いてあるよ
dp単位でのスクリーンサイズによる。
ところでテレビにつなぐandroid端末や
プロジェクターにつなぐandroid端末のことも忘れるなよ
いまのPCがボロスペックだから、新しいの買おうと思うんだけど エミュとかエクリプスが快適に使えるには、どんなスペックがいいかな?
eclipseはともかくエミュレータは快適には動かんよ
今のスペックは? 予算は?
>>356 そういうもんなのか
>>357 十年近く前のボロスペックだから言うのも恥ずかしい
とりあえずOS込み10万ちょっとで考えてる
モニタやら備品はあるからいいんだけど、どうすればいいのか途方にくれてます
>>358 第二世代Core i7にメモリ8GB積んでるがそれでもエミュは重いわ…。
今書いてるアプリが実機テストしかできないせいで、エミュを使わなくなってしもうた
Core i5またはCore i7 RAM8GB以上 あとは程々のを選んでおけば間違いない これ以上は金かけても大差ない
エミュはVirtualBoxでx86版Androidを動かすか 実機で動かすかだな
363 :
デフォルトの名無しさん :2012/01/20(金) 07:53:28.21
>>359 俺は16Gつんだけど簡単な描画処理でも重い
364 :
315 :2012/01/20(金) 08:40:51.22
>>331 いや、ライセンス表記させるActivity作って、その画面に
使ったAPIを先に書いて、その後に
さっきのCopy〜から apachウンヌンが書かれてる本文 Licenseまでを
表示させるようにしようかと
>>335 root/ウンヌン書かれた後にapachの説明文入ってるから
やっぱこんな感じで良さそうね
thx
孤独に開発するのは飽きたので だべりながらandroid開発しませんか 楽しく開発できたらいいと思います ちなみに自分はあまり経験がありません linuxやらデータベースに詳しい人も募集 zoneid1までコンタクトください
366 :
デフォルトの名無しさん :2012/01/20(金) 10:15:02.61
なんで手前が糞なのを一人で作ってるからと勘違いするかね
>>367 差支え無ければ
コンタクトいただけませんか?
楽しく開発できればと思います
悪気はないんだが、 「当方Vo全パート募集」 のコピペを思い出したw
>>368 RPG作ろう!
アクションゲーム作ろう!
二人合わさって
アクションRPGなんてどうかな?!
ってこじゃ
二人合わせていいものができるのは、一人でできる人が二人いた場合だけ。
>>363 16でもダメなんか…orz
快適に使うのは諦めよう。金がいくらあっても足りん気がしてきた(´・ω・`)
エミュを快適にする為のPC拡張するくらいなら、 白ロム買った方が安いからな。 エミュなしでいいなら1万くらいのCPUと4GBメモリで十分だし、 ついでにディスプレイ増やしておけば、開発しやすいし
>>376 確かにそうだな。
エミュにこだわる必要もないか。
さすがに10年前のPCよりは、快適になる。 メモリ16GB、SSD、モニタ2枚にしろよ。
379 :
デフォルトの名無しさん :2012/01/20(金) 14:11:31.53
>>374 i7第2世代の16GのSSDでもエミュの起動は早いけど操作が重たいから制限かけられてると思てた
BGM をループで流そうと思うんだが、ループ時の途切れが解消できないので困った MediaPlayer を使ってるんだが、setLooping() を呼んだだけではどうしても途切れてしまう setOnCompletionListener() ではループ処理が間に合わない 監視して正しい再生位置を設定しようにも getCurrentPosition() が嘘をつくのでどうにもならない どうしたらいい? ちなみに MIDI だとすんごい途切れるから、MP3 でやってる
Bluetoothでペアリング済みの端末同士って、発見可能モードへ移行しなくても接続可能なん? ただでさえ300秒ごとにダイアログ出さなくちゃいけないし、ちょっと不便。すれ違い通信は無謀なんかのぉ…。
アプリが終了されるときを判定するメソッドなどはありますか? SQLiteを使った、activity数枚を遷移するアプリを作っているのですが activityが破棄されたときではなく、アプリが終了したときにdb.close()を実行させたいです。
>>384 dbは終了など待たないで使うときだけ開いて使ったらすぐcloseが基本
trycatchもわすれずに
>>386 おお、すげーローテクだな。
なんか「一方ロシアは鉛筆を使った」のコピペを思い出して吹いた。
でも、結構いいんじゃね。
ゲームとかのレスポンスだったり、GPSやら各種センサーとか通話関連は無理だけど、
機種依存でよくある、画面の表示がおかしかったり異常終了になったりする等の
基本的な部分だったら確認するのに使えそうだ。
>>388 「限りなく実機そのもので」ってのとリモートを両立させようと思うと
そこらへんが落とし所だろうなとは思う。
あとは価格か。
指のロボットもつけてコントロールできるようになれば完璧だなw
>>387 マジっすか
確かに途切れなくなるけど、トータル 20 分以上あるものだから、音質的に妥協できる
16-bit 24 kHz Mono (384 bps) でも 20 MB 超してしまいんす
あと、サイズがでかくなったせいか、再生の開始に時間がかかるようになったよ
どうすればええかのう
20 分は嘘だった 9 分半ですた あと 384 Kbps
393 :
380 :2012/01/20(金) 20:08:20.70
あー、WAV でも途切れる曲は途切れるな やっぱり MP3 で行きます もし他に何かいい方法あったらよろしくです
394 :
343 :2012/01/20(金) 20:22:26.83
>>346 返事遅くなって、ごめんなさい。
runOnUIThreadのあとにwaitForIdleSyncはいれてます。
sendKeysの後には不要なんですね、これは外しときます。
同じテストコードを 2.3のL-01Dとエミュレータで試してみたんですが
何回やっても正常に動きました…
T-01Cがだめなのかなあ、と思い始めた次第です。1
初歩の初歩で申し訳無いのですが、emulatorとadbへのPathが通らず困っています。 Win7(64bit)での開発環境を構築しようとしています。 最初、Program Files (x86)にADKをインストールしました。 その時点ではPathが通っていたのですが、 フォルダ名に半角スペースがあると後々トラブるかな?と思い、 C:\Android\Android-SDKというフォルダを作成し再インストールしました。 そうするとPathが通らなくなりした。 当然Pathも書き換えています。 JDKもEclipseも64bit版にしています。 考えられる理由があればご教授願います。 そもそもADKは32bitなので(X86)フォルダで無いとダメなのでしょうか?
onSaveInstanceState→onPause→onStop→onDestroy →onCreate→onRestoreInstanceState→onResume という一連の処理を、ボタンクリック時などに意図的に行いたいのですが どうすればいいのでしょう?
>>395 pathを書き間違えてるだけでしょ。
pathをeditorにコピーして、見直してみなよ。
r16は半角スペースあっても動いてるね。
>>396 オーバーロードの中を別メソッドにして、ボタン押したらそれ呼び出してる。
>>398 よくわからないのが状態をを保存して復帰させるところです。
onSaveInstanceStateとonRestoreInstanceStateでは引数のBundleはどのようにあつかってますか?
>>399 View#saveHierarchyState とか View#restoreHierarchyState とかそのへん?
>>402 その辺のことなのかどうかもよくわかりません。
具体的にはViewPagerをつかっているのですが、
これ↓みたいにして無理やり更新すると、
this.onPause();
this.onStop();
this.onDestroy();
this.onCreate(null);
一番最初のページに移動しちゃうから、どうすれば前の
ページのまま更新できるのかなと。
>>402 View#saveHierarchyState と View#restoreHierarchyState
について、調べて試してみたらこれで解決しました。
ありがとうございました。
405 :
デフォルトの名無しさん :2012/01/21(土) 00:44:50.16
電話等のアプリの割り込みがあった場合surfaceviewが破棄されますが破棄されずに維持する又は破棄する前の状態の保存は可能ですか? 今は破棄のタイミングでアクティビティの変数にsurfaceviewクラスの変数の値を移して戻ってきたらアクティビティの変数からsurfaceviewクラスの変数に値を読み出しています でもこの方法は重たいので他のアプリから戻ってきて描画をするときに時間がかかってしまいます
>>380 ,391
組み込みだからデコーダのバッファに限界があるでしょ。
MIDIが遅いのはデバイス初期化のコストが高いからじゃないかね。
中身GStreamerなんだからNDKに解放しろとは思う。
>>380 NDKでoggのデコーダでも組み込んで、デコード量を調節しながらデコードしてAudioTrackに吐けばいい
mp4の動画データの任意のフレームをBitmapにするようなAPIはありますか?
>>408 ない。だって任意のフレームがseekableだって保証されてないもの。
そういえば2.3以降はOpenALデフォだからNDKから叩けるよ
androidアプリから外部のRDBMSにセキュアにアクセスする手段はどんな方法がありますか? アプリを利用する大勢のユーザーが存在する それぞれユーザー登録してもらって個々のIDで個々のデータを格納します 例えばevernoteに近いアプリを作りたいと思っています どうやってandroidからRDBMSにアクセスすればいいんでしょうか 差支え無ければご教授願います
>>408 MediaMetadataRetriever#getFrameAtTime で OPTION_CLOSEST を指定したら取れん? (ただしめっちゃ遅い)
>>411 まず、JavaプログラムからRDBMSにアクセスする方法は知っているか?
知らないなら(ry
>>413 レスありがとうございます
RDBMSのアクセスは独学のStrutsで何度も経験があります
LANやWAN越しでも使えるんですねありがとうございます
>>411 サーバ上のDBにユーザから直接アクセスを許すとかセキュリティ的にありえない。
悪意のあるクエリや更新をかけられたらどうするの。
普通はアプリケーションサーバにHTTPとかで独自のAPIを構築して、
ユーザにはソレ経由でのアクセスしか許さないようにする。
また、APIを受け取ったサーバ側は認証やバリデーションを行う。
データベース上にそれぞれのユーザを作って厳密に権限を設定管理しておけばあるいは まぁやらないけど
417 :
デフォルトの名無しさん :2012/01/21(土) 13:47:49.07
画面上のあるボタンを押したら、Dialogが表示され、 Dialog内はlayoutのxmlで作成しました。 Dialog内はリストっぽくなっているのですが、そのリストの一項目を押したら、 処理後にDialogを閉じたいんですよね。 とりあえず、はしょったソースですが、どうしたら閉じることができるんでしょうか? public class MyActivity extends Activity{ //画面上のボタンを押したら、Dialog表示 btn.setOnClickListener(new View.OnClickListener() { layout = inflater.inflate(R.layout.dialog,(ViewGroup)findViewById(R.id.dialog1)); AlertDialog.Builder builder = new AlertDialog.Builder(MyActivity.this); LinearLayout ll = (LinearLayout)dialogLayout.findViewById(R.id.linear1); // Dialog上のlinearにOnClick処理 ll.setOnClickListener(new View.OnClickListener() { @Override public void onClick( View v) { //ここで処理後に、Dialogを閉じたい。。。 } }); builder.setView(layout).show(); }); } 悩み続けて疲れました。おねがいします。
show の戻り値をどこかに取っておけばdismissを呼べる
419 :
417 :2012/01/21(土) 13:59:51.21
>>418 うぉぉぉぉぉぉぉぉ!消えた!!!!!
そーか。。。理解できました。ありがとうございます!!
Threadの配列って不味いかな 今んとこ不具合は起きてないからそのままだけど将来的にマーケットに登録したいから危ないなら仕様変更したいんだけど
不味い理由は?
マーケットで1万DL達成したんですが、週1くらいで「Caused by: java.lang.ClassNotFoundException:」が上がってきます ビルド通った時点でありえないと思いますが、対処法ってありますか?
「仕様です。」っていう
「ただちに」っていう
でってう
426 :
380 :2012/01/21(土) 17:10:35.06
みんなありがとー
>>400 最もやりたくねえwww
>>401 うお、途切れなくなった、何で?
MP3 と同じ圧縮オーディオじゃないの?
>>406 MIDI の場合、ループする毎にわざわざデバイス解放しちゃってるんかね
>>407 NDK って難しくないん?
俺にもできる?
>>401 で一応解決したけど、OGG ってどの端末でも再生できるの?
少なくとも俺の MEDIAS N-04C の取説には書いてなくて、でも再生はできた
>>422 1万すげーな。
どのクラスで起きてるかわからんけど、AndroidのAPIのバージョン違うと起きる時ある。2.3で追加されたクラスで、コンパイルに2.3使って、1.6もサポートした時ね。
オレは、キャッチして、その機能はサポートされてません、みたいなメッセージで逃げてる。
wavとかmp3は処理が重くてラグが発生するからタイミングにこだわりたいアプリには向いてない。 SEとかBGMループとかサクサク動かしたい場合oggにするのが吉。ゲームの効果音とか
自分で外部Storageに作成したtextファイルを1行ずつ読み込もうと していますが、Eclipseに従って try - catch を生成していったら 下記のようになってしまいました。 1つの try- catch にまとめられないか苦戦していますが、 結局Eclipseに怒られてしまい、下記に戻ってきます。 こんなソースになるものでしょうか? file は new File(String) で正しく作っています。 try { BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(file), this.STR_ENCODE)); String lineData = null; try { while ((lineData = reader.readLine()) != null) { // 1行読み込み } } catch (IOException e) e.printStackTrace(); } finally { try { reader.close(); } catch (IOException e) { e.printStackTrace(); } } } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (FileNotFoundException e) { e.printStackTrace(); }
Androidのライフサイクルについて教えてください。 ActivityのonStopはどんな状況で実行されるんでしょうか? 端末の空きメモリが少なくなった場合とかですか? Activityのメンバー変数をonCreate()で初期化してますが、 onStop()などが走った場合は、メンバー変数はGCされたりしますか? onStop() -> onSaveInstanceState() -> onRestart() -> onStart() -> onRestoreInstanceState() -> onResume() Activityのメンバー変数はonSaveInstanceStateで保存したほうが良いでしょうか? よろしくお願いします。
>>427 なんとGoogleMapです
(/system/framework/com.google.android.maps.jar)
海外のフォーラムにも同様の問題がありましたが結論は
「再インストールしてもらう」だったような・・・
>>415 そうですよね、DBの接続をソースにはかけませんよね
独自APIを作ったことがないのでどんなものか・・・
>>416 データベース上にユーザーを作る方法はどうして「まぁやらないけど」になるんですか?
独自APIを実装せずに済むこと、androidソースにDB接続をかけることというメリットが感じられるんですが実際はどうなんでしょうか
カスタムテーマのStyle.xmlについて質問です。 <?xml version="1.0" encoding="utf-8"?> <resources> <style name="CustomLight" parent="android:Theme.Light"> <item name="android:buttonStyle">@style/CustomButton</item> </style> <style name="CustomButton" parent="@android:style/Widget.Button"> <item name="android:background">@drawable/button</item> </style> </resources> こんな感じでButtonに設定した@drawable/buttonのスタイルをImageButtonにも適用したいのですが、なんて書けばいいでしょうか。 よろしくお願いします。
434 :
デフォルトの名無しさん :2012/01/22(日) 01:11:46.99
復帰してもonRestoreInstanceStateが呼ばれない原因はなにがありますか? ホームに行く時にonSaveInstanceStateは呼ばれてます エミュでホーム→戻るという簡単な操作しかしてないですが
>>430 テストアプリでメソッドをオーバライドしてログ出力でも書いとけば
どんなタイミングで呼ばれるかは体感的に分かるよ。
ていうか分かっとけ
>>434 システムによってkillされてないから。Activityのインスタンスが死なずにそのまま再度onStartするだけなのでリストア不要
437 :
395 :2012/01/22(日) 01:50:10.32
>>397 諸事情で返信遅れました、回答ありがとうございます。
念のため、ファイルのプロパティからパスをコピペしましたが無理でした。
r16は半角スペースあっても動いてるとの事なので、再度アンインストールしてから、
(x86)フォルダにインストールしてPathを通してみます。
ADBも(x86)フォルダに移動させたらPathが通ったので、これで解決できるかと思います、
ありがとうございました。
Pathが通らなくなった謎を、解決できなかったのは多少残念ですが・・・w
438 :
デフォルトの名無しさん :2012/01/22(日) 02:31:36.88
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="
http://schemas.android.com/apk/res/android ">
<item android:state_pressed="true"><layer-list><item><shape
xmlns:android="
http://schemas.android.com/apk/res/android "
android:shape="rectangle">
<gradient android:angle="270" android:startColor="#b7ed36" android:endColor="#649016" android:type="linear"/>
<corners android:bottomRightRadius="10dp" android:bottomLeftRadius="10dp" android:topLeftRadius="10dp" android:topRightRadius="10dp"/>
<stroke android:width="2dip" android:color="#649016"/>
</shape></item></layer-list></item></selector>
このスタイルをボタンに適用するとxmlエディタ上では綺麗にボタンが表示されるのですが
エミュレータ、実機上では何も表示されなくなります
適用しない場合デフォルトのボタンデザインで表示されるのは確認しています
↑のxmlのどこの記述がおかしいのでしょうか?
ソースの貼付けが汚くなってしまった・・・すみません
橋下市長 在日外国人の固定資産税減免を原則廃止へ
大阪市の橋下徹市長は20日、市が在日外国人の集会所や労働組合の事務所などを対象に
実施している固定資産税の減免措置を原則廃止する方針を明らかにした。
大阪市では労働組合の土地や福祉施設、在日外国人の集会所、マンションに併設された児童の遊び場などを対象に、
固定資産税を減免。生活保護受給者の土地・家屋などにも適用しているが、
こうした減免措置について、橋下市長は「支出の意味を(市の担当者が)意識しなくなる」と指摘し、「固定資産税の減免は原則なし。」とした。
ただし市では、すでに朝鮮総連の関連施設への減免措置見直しにも着手しており、
今回の橋下市長の指示を受けて今後、補助金の形でも大幅削減となる可能性がある。
http://sankei.jp.msn.com/region/news/120120/osk12012023460016-n1.htm
>>439 android:state_pressed="true" の <item> だけしかないから
押されてないときは絵がないのでは?
eclipse上のデザイナなんか信用しちゃだめだ
ねえ、誰か新作アプリ作ってる人居る? 一斉に公開してダウンロード数勝負しない?
444 :
デフォルトの名無しさん :2012/01/22(日) 13:01:09.26
for (int i = 1; i <= num; i++) { String name = "hoge"+i; int id = getResources().getIdentifier(name, "id", getPackageName()); ImageView iv = (ImageView)this.findViewById(id); iv.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String name2 = "hogehoge"+i;←ここで i を使いたい int id2 = getResources().getIdentifier(name, "id", getPackageName()); ImageView iv2 = (ImageView)findViewById(id2); } }); } 上記のようなケースはどうしたらiを使うことができるんでしょうか?
iをクラスのメンバ変数にする
446 :
444 :2012/01/22(日) 13:23:55.28
>>445 結局それしかないんですかね。なんかスマートじゃない。。w
どもっす
別にそこで使わなくてもいいでしょ for (i = 1; i <= num; i++){ final String name = "hoge" + i; final String name2 = "hogehoge" + i;←ここで使えばいい ってfinal知らない?
448 :
444 :2012/01/22(日) 13:40:07.01
>>447 あ、そっちで入れたらいいのか・・・
どもです。
>>435 おおきに
onStop()などが走った場合は、メンバー変数はGCされる場合もありますか?
そこが一番知りたいんですが。
451 :
デフォルトの名無しさん :2012/01/22(日) 14:41:37.53
>>443 まだ初心者過ぎて公開まで行かないけどジャンルを晒したほうが勝負しやすいんでない?
>>429 例外の種類ごとに処理を分けないなら全部Exceptionで受ければイイんじゃね?
try {
…
} catch (Exception e) {
e.printStackTrace();
}
>>452 ありがとうございます。
仰る通りですね。
reader.close() や finally を気にしつつ
例外 catch をまとめようと思います。
今javaを勉強してる者です。 androidアプリ開発でプログラミングデビューした人って結構いるのかな? そういう人は本やらサイトやらで学んだんだよね。 そういう人たちはどのくらいjavaを理解してるんだろ?やぱテキストとかの例題をちょいと手を加えたりくらいかな?
eclipse HELIOS で開発しています。
layoutの編集画面に、「Theme」を選択する
コンボボックスがあります。
画面キャプチャ:
ttp://www.dotup.org/uploda/www.dotup.org2546098.png.html これを変更すると、プレビュー画面のテーマ
(背景色やフォント色など)は確かに変わるのですが、
実機に流し込むとそのテーマが適応されていません。
と言いますか、「Theme」を変更したところで
xmlのどこにも変更が入りません。
「Theme」は、コンボボックスだけ置いてあって、
実際には何も機能していないのでしょうか?
456 :
455 :2012/01/22(日) 15:40:16.23
× 適応 〇 適用
はい あれはエディタ上で (もし適用した場合の) 見た目を確認するためだけのものです 同じレイアウトを場合に応じて異なるテーマで読み込むこともできますから、 実際に実行時にどのテーマを適用するかはレイアウト自体とは無関係です テーマは AndroidManifest.xml で設定してくだしあ
458 :
455 :2012/01/22(日) 16:04:05.77
>>457 やはりそうでしたか。
ありがとうとございます。
459 :
デフォルトの名無しさん :2012/01/22(日) 16:15:38.48
>>450 参照が切れてないデータはそもそもGCの対象にならない。
>>454 人の事を気にして何かしら変化あるのかね?
他人は他人、自分は自分だろ。
462 :
デフォルトの名無しさん :2012/01/22(日) 18:27:17.19
初心者でもわかりやすいサンプルがたくさん載ってるサイト教えて下さい
そんなレベルの人はあきらめたほうがいい
×わかりやすい ○コピペしやすい コード例をみて何やってるか分からない人はWebにあるサンプルとか使わないでください。 質問されても迷惑なので。
465 :
デフォルトの名無しさん :2012/01/22(日) 21:22:26.80
backキーを押したとき通常は一つ前ににアクティビティがあればそのアクティビティに移動しますが一つ前にアクティビティがある状態でアプリを終了させる方法はありますか? まだ初めて少しなので専門用語などがわからずわかりにくい内容ですが簡単に言うとどんなにアクティビティを移動してもbackで一発終了させたいです
見捨てないで〜(><)
アンドロイドデベロッパーズっていうサイトがすごいよいよ
>>465 次のアクティビティをstartActivityするときに前のアクティビティをfinishしておけばよいのではないでしょうか
470 :
デフォルトの名無しさん :2012/01/22(日) 21:43:49.74
>>468 一つ一つ戻っていくんですか?
一発ではなくてもbackキーを一回押しただけで終了させる方法があれば教えてください
startActivity()のあとか、startActivityForResult() でも使えばいいんじゃないの。 つーか、ググりが足りないと思うけど。
473 :
デフォルトの名無しさん :2012/01/22(日) 22:09:04.33
>>469 かなりいい方法でしたが次へ行くタイミングよりfinishのほうが早くなってしまい
>>471 さんの方法を使いました
>>471 ぐぐりかたがたりなかったようです
おかげで上手く動作させることが出来ました
474 :
デフォルトの名無しさん :2012/01/22(日) 22:35:05.92
ファイルマネージャ系アプリからファイルの関連付け(というか普通のタップ)で実行する場合、 file:// の実パスが渡る場合と content:// で渡ってくる場合の二種類があるようです。 この2つはどういう基準で選択されてるんでしょうか?
>>474 そのファイルマネージャーが勝手に決めてるんじゃない?
コンテンツは、コンテンツマネージャーに登録してあるとかで。なければ、ファイル。
476 :
デフォルトの名無しさん :2012/01/22(日) 22:58:40.73
SSDにubuntuインストールして、android OSのビルドしようかと思うんだけど、 ビルド中にカキコすぎて壊れたりとか? 1ヶ月ぐらい使えればいいんだけど
そんな知識でだいじょうぶか?
>>475 了解です。事前(?)に登録があるかどうかですか。
ちなみにアストロの場合でした。
>>477 4.0.3に手を出してethernetドライバがまだ出揃ってないからまずそこでつまずくだろ。
windowsで全部SSDに入れてるけど、そこそこ快適です。 しかしindigoの起動で15秒、gingerbreadに40秒ぐらいかかります。 linuxの方が快適なんですかね。
xml出力するのに transformer.setOutputProperty(OutputKeys.INDENT, "yes"); したけどインデントされない そういうもん?
java5の頃にも似たようなの見たなw Xalanのシリアライザ実装がないと無理
韓流の聖地、光と影 脱税など不正 観光客マナー悪化
<一部抜粋>
販売許可なし? 活気づく街の陰には負の部分も浮かぶ。
東京国税局は、新大久保で韓流ショップを運営する「ワールド・アップル商事」と同社社長(45)が売り上げの一部を申告せず
約4千万円を脱税したとして、東京地検に法人税法違反罪で告発した。経営する店舗の一つでは簡素なシールを貼り付けただけの
DVD数枚を1セットにして、テレビドラマ全編を2千〜3千円で販売。男性店員は「商品はすべて公式ライセンスを取得している」と話すが、
「KBS(韓国放送公社)ジャパン」(東京)によると「新大久保の韓国グッズ店で販売許可を得ている店は一店もない」という。
一方、大阪府堺市から来店したという女性会社員(24)は、定価の半額で購入した写真集を手に「販売ルートは関係ない」と意に
介さない様子だ。
深夜を迎えると、飲食店付近の歩道にはゴミ袋30〜40袋がうずたかく積まれることも。新大久保商店街振興組合の理事の一人は
「韓国系の大部分の店舗は組合に加盟しない。ゴミ収集など街の問題について話し合うのが難しい」と嘆く。
地元住民は複雑
地元住民からは日本人観光客に対する苦情も絶えない。大正6年から95年続く文房具店の女性店主(68)は「大騒ぎにはこれ以上
耐えられない」と来月、閉店することを決めた。
昼間には母親グループが託児所のように店内に子供を置き、買い物に出かける。深夜でも、酒に酔い韓国人男性に抱えられた日本女性が
騒ぐ。観光地化に伴い地域住民は新大久保を離れ、売り上げも半減した。「ブームが過ぎれば、くしの歯が欠けるようにさびれるでしょ。
もう普通の街に戻ることはない」(女性店主)。店舗を引き継ぐのは韓国グッズ店だという。
同組合の内藤雅也副理事長は「お客さんが新大久保に来てくれることはありがたい。韓流を地域活性化にうまく活用できるよう問題を
解決していきたい」と話している。
http://sankei.jp.msn.com/life/news/120122/trd12012221460012-n2.htm
485 :
デフォルトの名無しさん :2012/01/23(月) 09:52:53.14
eclipseでAndroidアプリを作成中なのですが。 eclipseの実行で、エミュレータを選択し、OKボタンを押すと、 なぜかwebカメラの画像がクリップボードに入っているのですが、 これはeclipseの仕様なのでしょうか。 同じ様な現象が起こる方いませんか?
中2女子です 端末IDは重複する可能性ありますか?
中1です。 ググれボケ
犬です。 スレよく読めバカ。ワン
・・・ムシです
ヒロシです・・・
androidのDalvik仮想マシンで1アプリが使えるメモリの最大値は16Mと聞いています。 質問ですが、 アプリのapkのサイズはこれを押し下げますか? つまり10Mのapkを実行した時、起動時点で残りのメモリ量は6Mに減りますか?
自分でやってみりゃいいじゃん?
logcatでArrayIndexOutOfBoundsExceptionてでたんですけど 何行目か書いてないのでわかりません どうやって特定すればいいでしょうか?
>>494 debuggable か debugging を true にしたらいいんじゃねーの?
>>492 へらない rawリソースに10MBのファイルつっこめばわかる
あとvmヒープの上限は端末によって異なる 16Mは過去の水準
今時は24か32あるのが主流
発信規制アプリを作ろうと思います 電話アプリの一定の動作を規制することは可能ですか?
ワラタ 機能の9割じゃん
501 :
デフォルトの名無しさん :2012/01/23(月) 19:40:13.67
LINEみたいの作るしかないな
できます →サンプルはどこにありますか 続き頼む
>>501 とりあえず、もっと新しい記事を参考にしろ
内容については知らん
教えてください。 SQLiteのテーブルUPDATEでDBファイル自体が消失するということはあり得るのですか?
アプリの起動画面すら表示させずに起動って可能でしょうか? バックグラウンドで動いて、すぐに終了でも良いのですが。
サービスのこと?
Androidの開発初心者です 作成したアプリをGalaxy S2で実行すると startActivity()の度にGET_TASKSのパーミッションがないという ワーニングがでます。 Manifestにpermissionを追加すればいいのはわかるのですが エミュレータで実行したときにはでないので 原因が知りたいです。 どなたかご存知ないでしょうか? 会社の開発端末で使用が制限されているので ウイルスとかではないと思うのですが・・・
ウォーニング
514 :
395 :2012/01/24(火) 01:04:36.36
電話がかかってきた時に、自動で応答メッセージを出したいのですが、 電話がかかってきたのはTelephonyManagerのlistnerで取得できるのは解りました。 電話がかかってきたのを自動で応答するにはどうすればいいのでしょうか? 録音済みのmp3を再生する予定ですが、応答できるならmp3にはこだわりません。
他人様が作ったカスタムコンポーネントのライブラリをロードして使ってxmlエディタ見たら 「○○(クラス名) failed to instantiate.」ってエラー出おるんですが ググっても解決せず、どなたか知恵をください
>>492 >最大値は16Mと聞いています。
ビルド時のコンフィグで決めるからそんなことはない
すいません困ってるので教えてください テキストを上下逆に表示したいんですけど いい方法をご存じないでしょうか?
、 ヽ i / ,' / ヽ/「t~~Vヽ { ,'/ \_/ ヽi:':'| / ,,--' ヽ\ ヽ:':'} ,,-'~ / / ,__ヽ |l ト' ,,--'~~ ./ / /'  ̄ ̄\i|/ ,/´ ~~\ / /ノ / ミ `ヽ~ `r{ / ミ / ,、 ,≡≡, ,,ヽ `ヽ、{ ミl ヽ,,':-…-〜' ).| ノ i ,,,,i `'``',三,,,'`~ ヽ、 { ':': l {: : } , `'~~(~~'} ヽヽ ) :':イ`iヽ: :iヾ:´ 丶 ; | ,, ト:} 逆に考えるんだ ):':':':':|'人 }: :i ,ニ、ヽ, ; |丶ニ .ヽ) く ':':':':':i.V'人ト ぇ,-Fテ`,/}}}`f士 ,|´,,_ /':':':':':';='ミ\‐-ニ,, ̄-<´{~`ヽ-一ミ,_,';';) ~くミ川f,ヾヽ ヾ~ヾヽトシヽ| }': ,〈八彡'';') >,;;`` ヽ丿川j i川|; :',7ラ公 ,>了 ~) 〃ヽヽ` `;ミ,rffッ'ィミ,ヽWiヽミ ゝ ,,〃ヽヽ``` ``'' ,彡'~\リ}j; fミ ~~`{ ;;`` 彡彡 i 、S` \_, 三彡/-v'`~ '--‐冖,___,--'
ビューを回転させればええないん? で、文字を逆から挿入する これきもいな 言っててなんだけど
520 :
デフォルトの名無しさん :2012/01/24(火) 09:28:46.87
>>519 thx
本当はレイアウトがくるっと回転すると理想だけど
ビューで考えてみるわ
>>515 xmlエディタなんてアテにしちゃいけない
Typeface.createFromFileでフォントを読み込んでビューに設定しているんだけど フォントの読み込みを繰り返しているうちに、 java.lang.RuntimeException: native typeface cannot be made というエラーが出て、二度と読み込みえなくなってしまう。 エラー文で検索したものの、原因は分からず、 プログラム的には一度読み込んだフォントを使いまわすようにすれば問題は無いんだけど そもそもエラーの原因も分からないのに処理を変えて逃げるのは気持ち悪いので、 何か原因が分かる方はいらっしゃるでしょうか。 createFromFileの引数が間違っている、ということは無いです。
ArrayList<MyObject>を遷移先Activityに渡す手段はないんでしょうか? ArrayList<Integer>とかArrayList<String>じゃないとだめ?
>>523 MyObject が Parcelable インターフェイスを実装すれば可能。(ただし、渡されるのはコピーだけどね。)
>>523 MyObject が Serializable だったら、
そのまま渡せるよ
R.stringで定義した文字列をglobalのstatic Stringに格納するにはどうすればいいでしょうか?
528 :
デフォルトの名無しさん :2012/01/24(火) 15:44:05.24
run(){ } のなかでviewを読み込む方法を教えて下さい
529 :
デフォルトの名無しさん :2012/01/24(火) 15:58:17.56
強制終了するから大体の場所をtryで囲ってみたんだが catchしてくれません 強制終了はcatchも飛ばされるのでしょうか?
catchの内容が間違っているんじゃないの? あと Error はキャッチできないよ。
arrayindexoutofboundsexceptionってでたんですけど(デベロッパーのレポートで) これをcatchしてくないんです
>>527 変数の宣言だけを先にして、代入を後からすればいい
>>532 その try してる部分と catch してる部分ここに書きだしてみなよ。
あとその例外は配列とかの範囲指定間違ってるって意味だから
明らかにバグがあるわけで、普通は catch で回避なんて外法はしない。
>>533 ありがとうございます!!
これで海外版大ヒット間違いなしです
是非ラーメンご馳走したいです
SDカード上に10Mのファイルがあったとして、これの最後の1Mの部分だけ読み込みたいんですが、 一度10Mのファイルを全部ヒープに読み込んでからじゃないとできないですか?
InputStream#skip とか RandomAccessFile#seek とか FileChannel#read とか
>>534 配列のバグはわかったんですけど
どの配列か調べるためにtryを使ってみたんです。
logみても行番号とかでてないし。
どうやって調べればいいでしょうか
んな馬鹿な。 例外発生時のスタックトレースから発生箇所わかるはずなんだけど。
>>539 debuggable か debugging、true にしてる?
>>539 ex.printStackTrace()
あと、catchするときは Throwable で受けること。 一部のよくある例外(nullとかindexとか) はException で受けるとcatchできない。
>>544 お前はわらってないで教えてくれよ
throwableじゃだめなのか?
スレッドの処理全体をtryで囲む時とか、Throwableで受けるのが正しい状況は普通にあるだろ。
種類がわからなければExceputionで受けるんじゃないの? スーパークラスまでいっちゃうの?
>>547 受け取れなかった例外をコンソールに吐いてくれるようなサーバアプリならそれでもいいよ。
モバイルはそうもいかんし。
>>543 NPE とか ArrayIndexOutBoundsException なんてただのバグだろw
それをキャッチとかwwww
>>549 どの例外を補足するべきかは文脈による。
今回は元の質問者がcatchする前提で書いてるんだから、その点は議論の対象にならないだろう。
まあ質問の意図をたどると本当に必要なのはキャッチすることじゃなくて スタックトレースをちゃんと表示する方法の方だったんだよな。
>> 539 proguardかけてて、該当個所がUnknown Sourceになってるんじゃない? レポートの下のほうに、リトレースうんぬん、って書いてない? proguard リトレースでググったら幸せになれる、と思う。 >> 545 ArrayIndexOutOfBoundsExceptionはRuntimeExceptionのサブクラスで RuntimeExceptionはExceptionのサブクラスなので Exceptionでキャッチできる(RuntimeExceptionでもキャッチできる)。
質問者ですけど場所はonDestroy()の中ってわかったので まるごとtry catchでThrowableで受けるようにして toast出すようにしたんですがスルーされて強制終了アラートがでます。 スタックトレースを書くとどこに表示されるのでしょうか? エミュの画面上には出ないと思うのですが。 proguard リトレース 調べてみます。
ぬるぽの事をNPEとか書く奴はじめて見た
>>552 proguard はかけてないっぽいな
>>555 そうか。
じゃあ再現させて例外拾うしかなさそうだなぁ。
printStackTraceの結果はlogcatに出る。
えっ?
try catchの質問者ですけど直りました。 予想外の数値がでてそれを定義してない配列の番号にいれてましたテヘッ try catchのいい勉強になりました。 ありがとうございました。 (^ω^)
いいってことよ
海外ではNPEはわりと一般的
じゃあ日本では一般的じゃないってことで
ここは日本です
なんでそうも海外コンプ丸出しなんだろう
ぬるぽは語呂がすごく良くて使っちゃうな。
NPEはじめに使った奴だけど、 ぬるぽでもNPEでも分かればどっちでもよくね? 上も下もないだろ
別に誰もどっちが上なんて話はしてないと思うが
NPE見て は?って思った ふだんつかわん
ぬるぽ Java 約 202,000 件 (0.18 秒) NPE Java 約 10,200,000 件 (0.18 秒)
MeiryoKe_PGothic ってフォント無料配布されてるよな あれってメイリオが元になってるはずだけど、ライセンス的にどうなんだろう? これを Android アプリに使うのって危険?
>>569 海外の人間がぬるぽを「ぬるぽ」と書くはずなんて無いんだから
検索結果が「ぬるぽ」の方が少なくて当然だろ
>>570 無料配布はされてないだろ?
メイリオから MeiryoKe_PGothic を生成するツールが無料配布されているだけで。
ライセンス的には自前のプログラムに入れて配布は当然 NG だよ。
CSS なんかに指定してインストール済みだったら表示されるなんてのは問題ないけど。
>>570 いや、ググってみ?
無料配布しているページはある
直接URLここに貼りなよ。 ライセンス的にNGだよ。
>>573 「他の人が無料配布してるから大丈夫だと思った」なんてのは言い訳にならないからね?
訴えられるかどうかはMS次第だけどなんかあったときに間違いなくそこからつつかれる。
MeiryoKe_PGothic じゃなくてメイリオ改だったな
ところで、Android アプリでプロポーショナルな日本語フォントが欲しい場合どうしてる? MeiryoKe_PGothic 入れようと思った理由もそれなんだけど
>>580 IPAフォントは?プロポーショナルもあるよ。
583 :
デフォルトの名無しさん :2012/01/24(火) 23:42:08.86
float[] vertices = { -0.5f,-0.5f, 0.5f,-0.5f, -0.5f, 0.5f, 0.5f, 0.5f, }; float[] colors = { 1.0f, 1.0f, 0.0f, 1.0f, 0.0f, 1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, 1.0f, }; FloatBuffer polygonVertices = makeFloatBuffer(vertices); FloatBuffer polygonColors = makeFloatBuffer(colors); gl.glVertexPointer(2, GL10.GL_FLOAT, 0, polygonVertices); gl.glEnableClientState(GL10.GL_VERTEX_ARRAY); gl.glColorPointer(4, GL10.GL_FLOAT, 0, polygonColors); gl.glEnableClientState(GL10.GL_VERTEX_ARRAY); gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, 0, 4); と本を参考に書いてみたのですが配置はうまく行っているのに色が反映されません(色の指定部分が真っ白) どこか間違えているのでしょうか?
>>582 再配布も問題ないみたいだね
ちょっと使ってみるよ、ありがとう
>>583 gl.glEnableClientState(GL10.GL_COLOR_ARRAY);
586 :
デフォルトの名無しさん :2012/01/25(水) 04:47:30.41
下記のように、大きめの画像をスクロールしています。 例でImageViewのsrc=helpとしてみましたが、 ImageViewの中身は、ヘルプのHTMLページをキャプチャした画像なイメージです。 その画像の中のリンクを押したときにonClickイベントを発生させたいのですが、 そのリンク用のViewどこにどう足せばいいのかわからなくなってしまいました。 よろしくお願いいたします。 <ScrollView android:id="@+id/scroll" android:layout_width="fill_parent" android:layout_height="fill_parent" > <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@drawable/background" android:padding="10dip" > <ImageView android:id="@+id/img" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_gravity="center" android:adjustViewBounds="true" android:contentDescription="@string/desc" android:scaleType="fitStart" android:src="@drawable/help" /> </LinearLayout> </ScrollView>
LinearLayoutをFrameLayoutにしていい感じに重ねる
588 :
デフォルトの名無しさん :2012/01/25(水) 13:26:30.86
スマホ用(タブレットでないほう)のアプリを作る時は画面の大きさはどのくらいにしていますか?
必須の512x512のどでかいアイコンってどうやって作るんでしょ?
ふぉとしょでもgimpでも好きに使え。 てーか普通は先に512x512のアイコンを作ってから縮小する
自パッケージ以外のウィジェットの ビューを更新するのはどうやっても無理かな?
public class okNoBtnListner implements OnClickListener {... こんなひどいクラス名初めて見た 泣いた
アイコン作るならドローソフトがオススメ。 inkscape使えば、拡大してもボヤけたりしないよ。
pictbearで大きめに描いてinkscape で縮小してるわ グラデとかのエフェクト掛けたりするときはjtrimやpicasaも使う
自作アプリをfinish()で終了させた後も設定→アプリケーションの管理から実行中のアプリケーションのリストを見ると自作アプリが残っていますが、 そこで強制停止ボタンを押すと当然ですが実行中のアプリケーションのリストからは消えました。 これは、アプリケーションの管理での強制停止ボタンの中ではそのアクティティに対してfinish()を呼んでいるわけではないという事ですか? これに相当するのを自前で行いたい場合、APIなどありますでしょうか。
とある会員制サイトに自動ログインするアプリ(というかブラウザ)を作ろうと思うのですが、 ID、パスワードの対を複数保持できるようにしたいのです。 パスワードはどこに保存すべきでしょうか? SDカード->論外 本体メモリ->アップデートのたび消えてしまう
>>596 もし全部のActivityをfinishしてもプロセスが残っているのであれば
Activityの中でThread起動してそのまま放置してるとか?
詳しくはSDKのドキュメントを見てね
>>597 > 本体メモリ->アップデートのたび消えてしまう
マジか!?
俺のアプリでSharedPreferenceが消えないのは
深刻なバグだったのか!
暗号化してDBにもたせれば
>>598 横だけどfinishしてもプロセスが実際に死ぬのはOSのさじ加減じゃなかったっけ
>>600 俺もそんな感じで思ってた。実際のとこどうなんだろ。
GCとかと混同してるんかな。
新しくアプリ起動するのに必要なメモリが足りないと判断した時にシステムが他のアプリを殺す …はず。
>>597 アップデートのたびに消えないでしょ。
そんなのだったらすべてのアプリはアップデートの度に再設定だよ。
>>603 本体のアップデートの事かな?とは思うけどそれはどうしようもないしな
finish できちんとすべて終われば キャッシュされたプロセスに残るんじゃないの? 完全に落とすには確か system.exit() だよな。 でもそれをやるのはダメ。OSに任せるべき。
onCreate前がキャッシュされてるのかな?キャッシュって言われてもよくわかんない。
プロジェクトのプロパティ見てビルドターゲットを変更するだけで そのOSバージョン用に切り替わったと考えていいですか?
>>606 ActivityManagerとかで管理してるんだと思うけどAndroidのframeworkで使ってる
プロセスを含めたActivityの管理情報をキャッシュしてるってことじゃないかな?
system.exit() されるとframeworkが気づかないうちに勝手にプロセスだけ
死んじゃうから非推奨なんだろくらいは推測できるだろ?
609 :
デフォルトの名無しさん :2012/01/26(木) 00:28:21.21
SurfaceViewのサブクラスからjniを呼び出したいのですが通常のやり方(クラス内でloadlibrary後呼び出し)だとUnstaisfiendLinkErrorが出てしまいます Activityから呼び出すと普通に動作するのですが・・・ どうすればサブクラスから呼び出せるのでしょうか?
そんな制限はない。お前のコードが悪い。
>>611 ありがとうございます
もう少し調べてみます
解決しました 関数名のクラスを指定する部分がActivityのものになっていたので変更したところ無事動作しました ありがとうございました
>>597 設定やパスワードなんかはSharedPreferenceを使うのがいいと思いますよ。
保存するものによって外部や内部のストレージにファイルを作ったり、DBやassetsなど
他にもありますが、すべて更新で消えることはありません。
プロセスはOSが殺すまで残るけどJITキャッシュ捨てるからメモリの断片化とパフォーマンスの低下を引き起こす それによってOSがメモリ空けようとした時なんかは裏で悲惨なことになる。 いまはRAMが多いからこれ自体は少ないがRAMが多いとVMの管理メモリもおそらく増やされてるからGCの実装上パフォーマンスが糞悪い。 現実的にはNDK部分がJNIで終了時にフックしてC側のネイティブなリソースを解放するからもっと最悪。 パフォーマンス周りを根本的に改善するにはbionicとDalvik捨てるしかない。それができないからrenderscriptはLLVMに丸投げしたんだよ。 system.exit()の方はmainスレッドそのものを終了させるからアクティビティのランチャ側が発狂するんだったと思う。
テキトー書いてんなあ。信じない方がいいぞコレ
Medibaの広告が、実機とエミュレーター共に480*800では表示されるんですが、 エミュレーターの240*320のQVGAサイズでは何も表示されません。 表示に失敗したらレイアウトごと消える様にしてあるんですが、レイアウトは真っ黒のまま残っています。 ログを見ると、表示に成功した事になっている様なのですが、見えるようにするにはどうすればいいでしょうか? Javaソースの部分 MasAdView mediba= new MasAdView(MyActivity); ((LinearLayout)MyActivity.findViewById(R.id.ads_parent)).addView(mediba); XMLの部分 <LinearLayout android:id="@+id/ads_parent" android:layout_width="match_parent" android:layout_height="wrap_content" > </LinearLayout>
619 :
デフォルトの名無しさん :2012/01/26(木) 05:33:03.94
App Inventor を使ってみたいんですがどこかでダウンロードできないですかね?
ちょっと教えて下さい! ActivityがA→B→Cと遷移して、C Activityでアプリを終了させたいんだけど、A、Bの遷移履歴を削除してCはfinishすればいいと思うんだけど、Activityの遷移履歴ってどうやって消すの? 調べたらWebViewの遷移履歴ばっか出てくるんだよねぇ。
>>621 >>471 startActivityForResult()で起動したActivityの終了イベント受け取れるから
そこでfinishしたらいいんじゃね
intentって、例えば発信された一つのインテントを複数のアプリで同時に受け取る事はできるでしょうか? それともOSによってそのインテントを受信可能な設定をされているアプリの選択画面などが出て、一つのアプリにしか渡せませんでしょうか?
>>623 きみはアプリ選択画面が出た事無いのか?
android2.0用のSDKで組んだアプリはそれ以上のOSの端末なら動作が保証されていますか?上位互換という話を聞きましたが
>>623 選択画面を出したくないってことか?
明示的に複数インテントよんでやれば複数で同時に受け取れるよ
>>625 2.1で開発している俺のアプリは俺が持ってる2.3の機種で問題なく動いているという事実だけ伝えておく。
どう判断するかはあなた次第
>>625 いいえ。 3.0でmanagedQueryが廃止されたなど、互換性のない変更もいくつかあります。
>>626 「一つのインテント」って書いてあるやん
>>623 BroadcastReceiverとかサービスとか
>>623 それはインテントがどう送信されたかによる。
startActivity、startServiceでは最終的にそのインテントを受け取るのは1つだけ
sendBrodcast は複数のアプリがインテントを受け取れる。
ViewFlipperでフリックで切り替えしようと OnTouchListenerをViewFlipperにつけて onTouchをGestureDetectorに渡して・・・でうまくいってたんですが ボタンを置くとボタンの上でフリックしても反応しない というかonTouchが呼ばれなくなってしまいました。 これなんか設定が悪いんでしょうか?
ボタンを設置したDialogで ボタンを押すとDialogがアニメーションするようにしたいんですが Dialogが開くときと閉じるとき以外のアニメーションってどこで設定すればいいんですか?
635 :
デフォルトの名無しさん :2012/01/26(木) 19:31:07.49
簡易ブラウザつくったはいいものの、mailto:タグ踏んでメール送信しようとしてもうまくいかない… 皆さんどうやってメーラー呼び出してるんでしょうか・・・ 標準のブラウザ視タイに複数のメール選べれば最高なのですが。
WebViewClient の派生クラスでshouldOverrideUrlLoading(WebView view, String url) をオーバライドすれば好きなようにできる
>>636-637 有難うございます。まず
>>636 さんの頂いたサイトをよく読んで実践してみます。
悩んだ時はまた相談のって頂けましたら幸いです。
A→BとActivityがあってAはWebViewでBはsingleInstanceのActivityなんだけど、BをfinishしてフォーカスがAに戻った時にWebViewが真っ白になってしまうよー onResumeでsetContentViewとかChromeClientやWebViewClientの設定をしててURLの再読み込みもしてるんだけどなぁ どうしたらBをfinishしてAに戻った時にWebViewが元の状態から使えるのかね?
>>639 onStartで handler.postDelayed して少し後に処理させるのがコツ
WebViewは内部で別プロセスと通信してて、それの再初期化が中途半端だと色々うまくいかん
onResume で WebView.resumeTimer() の呼び出し onPauseで WebView.pauseTimer の呼び出し
642 :
634 :2012/01/27(金) 02:21:39.69
dialogのテーマで背景を透過して 中の子ビューをアニメーションさせることでとりあえず対応しました。 非常に微妙な感じなので、dialogクラスを継承するんではなく独自で作ったほうがよさげですねこれ・・
>>634 解決した用でよかったですが
何をしたかったのかさっぱりわかりません
try catchしてるにもかかわらず エラーがでてしまうのですが } catch(Exception e) { ってエラーなら何でも捕まえるわけではないんでしょうか?
catch出来るのはエラーじゃなくて例外じゃないの? どんなエラーが出てるのか知らないけど
エラーって何? コンパイルエラーのこと? try...catchで捕まえるのは例外だよ
Errorのサブクラスかもしれんし
catchでエラー処理をなにもしていないからでしょ
トライ アンド エラーは創意工夫の基本
Errorのサブクラスはキャッチするもんじゃないし しても無駄
651 :
デフォルトの名無しさん :2012/01/27(金) 12:50:56.12
Errorは回復不能な場合に投げられるものだからな。
652 :
643 :2012/01/27(金) 12:59:34.85
すみません java.net.unknownhostexceptionでした なんでも捕まえるcatchってのはないんでしょうか
catch(Exception e) じゃ Error は捕まらない Error は Exception じゃないからな Throwable にしないと
「エラーがでてしまう」というのはどういう意味 ログに出てしまうという意味ならログに出るかどうかと catch したかどうかは無関係だし
655 :
643 :2012/01/27(金) 13:11:51.61
>>653 Exceptionが発生しないエラーがあるんでしょうか?
C#なんかだとcatch(Exception e)で全てまかなえるんですが
馬鹿には無理
Throwable でぐぐってみればいい それより単に catch する場所が悪いだけなんじゃないか
658 :
デフォルトの名無しさん :2012/01/27(金) 13:17:23.27
Activityが長時間表示されなかった場合のonStop()の処理をテストしたいのですが どのようにすればいいのでしょうか?
659 :
639 :2012/01/27(金) 14:11:27.90
640、641 dクス 641の方はやってみたけど出来ないなー。。 因みに海外サイトでonWindowFocusChanged内でやってるサンプル見つけてやってみたけどwebviewがアクティブになってない感じでした。 640の方はスレッドにしてないから試せなかったよ jQuery使ってるけど、setJavaScriptEnabled(true)してればいいと思うんだけどなぁ
660 :
デフォルトの名無しさん :2012/01/27(金) 14:28:57.79
videoviewを使って動画再生アプリを作っています。 sdcardに動画ファイルをアップロードしたいのですが、 イクリプス内のどこに動画ファイルを置いたらいいのでしょう。
662 :
デフォルトの名無しさん :2012/01/27(金) 14:36:05.38
>>658 処理テストの意味が良くわからないけど
onStop()の中にlogいれればよいのでは?
664 :
デフォルトの名無しさん :2012/01/27(金) 14:54:35.43
>>660 です
# adb push sample.mp4 /sdcard/
を書き込めば出来るっぽいのはわかった
しかしこれはどこに書き込むの?
コマンドツールというものを使うのですか?
/sdcard/ に書き込むものです。
>>660 videoViewってことはすでに動画ファイルが端末内に存在してて、それをSDにってことなのかな?
それならFileOutputStreamだけど・・・
質問させていただきます m(_ _)m 既存のdatabaseをアプリに入れて使用する場合、assetsフォルダに入れた後そのdatabaseをコピーして使用する、 とのことですが、assetsフォルダに入ってるdatabaseから直接読み込まずに、わざわざコピーするのは何故なのでしょうか? 気になって夜もオナニーできません、ご存知の方がいらっしゃれば、教えていただけると嬉しいです、よろしくお願いしますm(_ _)m
669 :
デフォルトの名無しさん :2012/01/27(金) 15:16:21.21
>>665 adbを使った事ないからググってみたんですけど
adbを実行するためにパスを追加する
↓
.java内にログを埋め込む
↓
adbコマンドを入力する
ってことでおk?
670 :
デフォルトの名無しさん :2012/01/27(金) 15:20:40.04
>>666 動画ファイルもアプリと一緒にダンロード出来るようにしたいんです
例えば画像ファイルだとresフォルダ内に入れればエミュレーターでも実機でも使えるじゃないですか
動画ファイルもそういう風に出来ないのかなと
671 :
迷える大学生 :2012/01/27(金) 15:23:08.33
円の半径rをキーボードから入力し、円周Lと面積を求め、その結果を出力するプログラムを作りなさい。ただし円周率は3.14 とし、また、円周、面積を求める部分は、関数とし、rをその因数とすること。また、キーボードから半径の入力 を促すプロンプトも表示するようにしてください。 困ってます。至急わかる方お願いします。
>>667 tokyo tubeでググれば、きっとオナれると思うガンガレ
4.0で動かないっていう報告があったんだけどどうしよう どの辺の仕様が変ったの?
円周率は3だろ?
>>669 △adbを実行するためにパスを追加する
×.java内にログを埋め込む
○adbコマンドを入力する
678 :
デフォルトの名無しさん :2012/01/27(金) 16:50:00.12
>>677 コマンドプロンプトにadb.exeを表示させる事までは出来ました
しかし内容をいじれないのですが、どうやってコマンドを入力するのでしょう
adb.exeを表示させるとすぐC:/\User\ >となります
>>667 apk の中に圧縮保存されているファイルにデータベースが直接アクセスできるとは思えないが
>>674 エミュレータで試してみたら? 重いけど
それかアプリをここで晒せば誰かが試してくれるかもしれない
>>681 エミュだと普通に動いた
4.0で市販されてるのってまだGALAXY NEXUSぐらいだよね
コメントと機種情報よくみたらかなり昔の機種に4.0を入れたみたい
root化して無理やり入れたから不具合でたんだろってかんじw
それで動かないから星1とかひでーよ
683 :
デフォルトの名無しさん :2012/01/27(金) 20:02:44.22
今、tabHostを使って作ってるんですが、 タブの内部のボタンを押して、タブの変更ってできるんでしょうか? 起動→tabActivity→タブ1内にtest1Activity表示→ test1Activity内のリンクを押す→tabActivityのタブをタブ2に変更→ test2Activityを表示 このように実現させたいのですが、、、いまいちわからず。。 よろしくお願いします。
TabHost.setCurrentTab(int index)
685 :
683 :2012/01/27(金) 20:18:26.10
>>684 ありがとうございます。ちょっとやってみます!
別スレッドで処理して、結果をメインスレッド(というか画面)に通知できる 汎用ワーカースレッドが作りたいんだが、 画面回転に対応させる良い方法が思いつかない。 誰か知恵を貸してくれぇぇぇ。
>>686 画面回転はデフォルトだとActivityごと再生成される。
onStop、onDestroyを通るのだからそこでスレッドをキャンセルして、
スレッドが止まるか止まらないまでもActivityに全く手出ししない状態にできればそれでOK
画面回転でActivityが再生成されないシチュにも対応したいのなら
もっと色々考える必要がある。
ぶっちゃけ汎用にはならないと思う
>>687 回答ありがとん。
まあ画面が再作成されるのは知っておりましてな…
今は、 Fragmentを画面回転時に破棄されない設定で作って、
中でスレッドプールを作って裏処理をさせているのね。
Callableを投げると裏で処理してくれて、結果をリターン。
メインスレッドで動いてくれるHandlerに結果を渡し、
Handleイベントでリスナに結果を渡す、とかやってます。
Activityのアタッチイベントで画面をリスナとして設定、
onDestroyでリスナを解除したり、
onResumeが来るまでは結果をリスナに通知しないとか色々やってるんだけど、
どうしても処理結果の型が固定されるという問題の前に悩んでおりまして。
なんかうまいことやっている人いたら話が聞きたいんですわー
サービスにする IntentService で処理して、PendingIntent で onActivityResult に結果を戻してもらう っていうのを考えたことはあるけど、実際にやってみたことはない
サービスにするべきかな。
ApplicationInfo appInfo を取得している状態から、その アプリケーションが どんなインテントフィルターを設定しているか 検索することは可能ですか? つまり、 ApplicationInfo からそのアプリのmanifest.xmlの内容を見に行けますか?
>>688 686のおバカキャラから、随分エラそうなキャラに変わったな。
すいません、少々お教え願いたいんですけれど 環境はEclipse 3.7でNDKのチュートリアルで分かりやすいサイトは無いでしょうか?
695 :
デフォルトの名無しさん :2012/01/28(土) 00:26:08.52
imageview使ったあとにサーフェイス使うとスピード違うなって思ったときに思ったけどjpg、gif、pngの中で描画のスピードの違いとかあるの?
他のキャリアは特に問題無いんだがな。
ソフトバンク以外問題出ましたやん
設備投資を日々怠らなかったソフトバンクが最強だな
電波改善宣言はまだ継続中。
むしろSBは客が少なくて助かったんじゃねw
WebView上でWebページを表示した時にWebページのテキストの選択ができなくて困っています。 原因と思われるのは setWebChromeClientでプログレスバーを表示してから テキスト選択ができないっぽいのです。 setWebChromeClientで何をなんらかの設定が足らないのではと思っていますが 解決方法が見つかっていません。 どなたか知恵をお貸しください。
703 :
デフォルトの名無しさん :2012/01/28(土) 14:46:28.83
gl.glPushMatrix(); { gl.glRotatef(45.0f, 0.0f, 0.0f, 1.0f); this.ttexture = GraphicUtil.loadTexture(gl, res, R.drawable.mona); } gl.glPopMatrix(); このようにしても画像が回転されないのですがなにが原因でしょうか?
>>703 パラメータが違うような
あの解釈がむずかしい
テクスチャロードにマトリックスの影響があるなんて初耳
テロ起こすなら携帯の基地局狙えば一発で大混乱にできることが証明されちまったな。 基地局なんてどこも無人で倉庫みたいにポツーンとある感じだしセキュリティー甘い。
住所から郵便番号を取得したいのですがどうすればいいでしょうか?
Android作業用に一台PC 作ったのだが、開発環境のOSはwindowsじゃなきゃダメですか? 実機はあるから、apkファイルさえ作れればいいのでlinuxでなんとかなれば最高なんですが…… Androidアプリ作った事ないので詳しい人教えて下さい!
Linuxでもできるよ
>>707 webapi探してあればJSONでデータをやり取り
なければ、webサーバを立てて住所郵便番号変換webapiを実装
それも無理ならsqliteが使えるらしいので、アプリ自体に住所郵便番号マスタを持たせる
>>709 マジっすか!?
マイクロソフト大嫌いだから助かったおwww
環境できたら、これからお世話になると思うんで宜しくお願いします
少しはググレよ
Activityのリスタートのやり方教えてください 手軽に設定反映させたいのです
>>713 finish()して親Activityから再スタート
8ビットの数値を3つくらいまとめてintの32bit1個にした静的なデータのテーブルを持ちたいです。 例えば、 1, 2, 3 の数値を 8ビットずつまとめて 0x010203 というintひとつにした状態でデータにして、そういったデータのテーブルにしたいのですが、 データ用の内部クラスを作ってやるとするとこんな感じでしょうか? class DataA{ int Data1; DataA( int a, int b, int c){ Data1 = (a<<16) | (b <<8) | (c); } } DataA[] DataList = new DataA[] { new DataA( 1,2,3 ), new DataA( 4,5,6 ), new DataA( 7,8,9 ), }; でもこれだとintのテーブルに比べてメモリがかなり消費されますでしょうか? 外部ツールで4バイトテーブルのバイナリにして読み込んだ方が良いでしょうか?
newする時間もかかるしな バイナリ読み込む方がいいと思うよ
>>715 考え方変えてさDataAをintのテーブルにしてgetter,setterなメソッド作るってのじゃダメなのかな?
javaのことはよく知らんのでアレだけど
>>714 リスタートしたいActivityが親なんです
>>719 そのActivityを親からスタートするようにしておくのさ
親Activityはダミー的なものでいい
>>716 バイナリ読み込みも検討してみます
>>717 個数は、100〜1000個くらいの要素数のテーブルにしたいです。動的に書き換えたりする必要はなくて、単に固定のデータリストとして持てればいいだけです
>>718 はい、ただ今回の場合一番やりたいことは8bit3つを32bitにすることで、データ容量を減らしたいなとふと思いまして
ただ、1000個くらいの量なら4バイトを3列もっちゃってもいいんですかね
つまりプリプロセッサでマクロが効くなら
#define DATA_A( a, b, c ) (a)<<16|(b)<<8|(c)
int [] DATAList = new int[] {
DATA_A( 1,2,3 ),
DATA_A( 4,5,6 ),
DATA_A( 7,8,9 ),
};
と言う事がやりたいだけなんです
これをどう実装しようかなぁと考えているところです
>>712 ここ質問スレだから
どや顔でググれよとかほざいてんじゃねーよカスがっ!!
こういうクズに限って大したスキルも無いんですよねw
とりあえずテメーみたいな能無しには用ないから失せろよっ!!
>>720 なるほど
ありがとうございます
やってみます
>>721 元データファイルからJavaのコードを生成するツールを書くとか
726 :
718 :2012/01/28(土) 18:32:24.88
>>721 よくわかってなくて申し訳ないけれど…
class DataAList {
static int MakeData(int a, int b, int c) {
return (a << 16) | (b << 8) | c;
}
private int[] m_dataTable = new int[] {
MakeData(0, 0, 0),
MakeData(0, 0, 0),
MakeData(0, 0, 0),
};
public int getData(int index) {
return m_dataTable[index];
}
};
みたいなさ…できんのかな。
コード書くだけ書いてみたけど動作は確認しておらず…。
これでどや static int DATA_A( a, b, c ){ return (a)<<16|(b)<<8|(c); } static int [] DATAList = { DATA_A( 1,2,3 ), DATA_A( 4,5,6 ), DATA_A( 7,8,9 ), };
LinearLayoutの Layout weight オプションがまったく理解できない。 1:1.5:1.5 の比率の長さにしたい場合、 各Viewのweightをいくつにすれば良いの?
2:3:3
>>729 そうしますと、実際の長さ比率は
2:1:1
になります。
また、適当に入力していましたところ、
1.2:1:1
で、希望の比率になりました。
なにこれ。。。
中身が有るからでしょ 中身を表示するのに最低限必要な分は確保して 残りをその比率で分配する
>>730 weightを幅に適用させたいならlayout_widthを0dipに、
高さに適用させたいならlayout_heightを0dipにする
733 :
730 :2012/01/28(土) 19:40:21.64
みなさん、ありがとうございます。 そういうことでしたか。
こちらのサイトを参考にして、
自前のダイアログを表示することはできました
ttp://techbooster.org/android/ui/1140/ ですが、自前のダイアログlに配置した
ボタンを (Button) findViewById(BUTTON_ID)
で取得しようとしても、null が返ってきます。
どうすれば取得できるでしょうか?
----------------------------------
そもそもやりたいことは、
ボタンの縦と横の長さを同じにして、正方形にしたいです。
横の大きさが画面解像度によって変化するので、
button.setHeight(button.getWidth());
のようにして設定しようとしています。
他に方法がありましたら、そちらもご教授願います。
735 :
734 :2012/01/28(土) 19:55:05.58
BUTTON_IDは、 R.id.ボタンのID です。
736 :
デフォルトの名無しさん :2012/01/28(土) 20:09:43.40
>>704-705 本のめくりの関係でごちゃごちゃになってただけでした
すれ汚しすいません
>>730 weightは数字の小さいものから優先して描画していきます。
buttonA
layout_width="wrap_content"
buttonB
layout_weight="1"
layout_width="fill_parrent"
これでボタンAの領域を取ったあとに余った領域すべてをボタンBを使うようになり
buttonA
layout_weight="1"
layout_width="fill_parrent"
buttonB
layout_weight="1"
layout_width="fill_parrent"
これで均等に2分割します。
weightはこういう使い方が多いんじゃないかな?
>>722 これみたいに使い方が色々あって文面の都合上説明しきれないものもあるから
ググッて理解してもらうのはありじゃないかな?
>>734 Activity#findViewById はアクティビティの中しか探さないぞ
Dialog#findViewById か View#findViewById を呼べ
>>734 自分的にalertDialogは制約も多くしかもそのまま使うと致命的なバグもあります。
Viewとして突っ込むと大抵のレイアウトは表示できますが、自作でダイアログを作った方がよいと思います。
簡単な例ですが、
@ ダイアログのレイアウトを作る
A Activityを継承した処理クラスを作る
B Aで作ったActivityにマニュフェストでdialogのスタイルを定義する
最初は面倒かもしれないですけど慣れておくといいと思います。
なに致命的なバグってw
dailogが表示されるまでshowDialogを無効化しないと連打回数分ダイアログが表示されます。
>>734 findViewByIdの呼び先は正しい?
ダイアログ内のViewが欲しいならダイアログのViewに対してfundViewByIdする必要があるけど。
inflateしてるならそれで戻ってきたViewに行う。
ダイアログはActivityの中で作ってる事多いから間違ってActivityの方になってるんじゃないかと
>>741 それはアクティビティでも同じだぞ
連打回数分だけ同じアクティビティが重なって出る
回答者同士が解り切った問答はやめましょう
>>738 , 742
仰るとおりでした。
LayoutInflater.inflate() で呼び出した View に対して
View.findViewById() を呼ぶことで取得できました。
ありがとうございます。
>>739 情報、アドバイスをありがとうございます。
まずは勉強としてやってみます。
746 :
730 :2012/01/29(日) 00:33:21.73
>>737 ありがとうございます。
buttonA, Bにweightを1ずつ与えると
均等に2分割されることは(実動作から)理解できていましたが、
ググって出てくる情報は、大抵が、その「1対1の均等2分割」でした。
どういう仕組みで、どういう優先順位で
などの情報までは辿り着けませんでした。
スレッドの中から別のスレッドができないでござる… Can't create handler inside thread that has not called Looper.prepare() どうすれば…
>>741 え、それバグっていうの?
入力こない方が困るじゃん。
>>747 別スレッドでuiいじってね?
そういうの制御 自分でできないのかね
>>747 普通のThreadは作れるだろ。おまえが悩んでるのはHandlerを扱うスレッドの作成。
Handlerを扱うスレッドはイベントを処理するメッセージキューと、それを回すLooperを持っていないといけない。
いちどぐぐってみな
もう一つの可能性としては、
>>747 はメインスレッド用のHandlerを作りたいのに、なぜか別スレッドからnew Handler() を呼び出してるとか。
>>748-
>>751 さんきゅーです
やりたいことはスレッドを作ってタイマーで定期的にいろんなことしたいわけだけど
750-751の言うようにスレッドというかタイマー作る前のnew Handler()でこれがでてる…
ちょっと調べてみるです
メインスレッド上でHandler作ったら、メインスレッドのLooperにヒモ付いたHandlerが出来る。 子スレッド上でHandler作ったら、もしそのスレッドにLooperがついてなかったらエラーになる。 んでHandlerに渡す処理でUI弄っていいのは、メインスレッドのLooperにヒモ付いたHandlerだけ
>>753 さんくす
やりたいことはファイル周りとか通信絡みなのでUIは触らないつもりです
タイマー使ってちょっと何かしようとしただけなんだが思わんことでいろいろ勉強が足りないなと痛感したでござる…
HandlerThread作ってOSHandlerにgetLooper()を渡してやればいいんだな とりあえず動いたじぇ
RecentTaskInfoで取得した履歴情報から startActivityでインテント渡して起動すると SecurityExceptionで強制終了するアプリがあったりする 何が原因なのかさっぱり分からない…
757 :
756 :2012/01/29(日) 04:23:34.27
HOMEボタン長押しの履歴から起動できるって事は サードパーティのアプリからの起動が許可されない 場合があるって事なのかな? とりあえず調査続けてみるか
double a = Double.parseDouble("?33.4"); これでNumberFormatExceptionが起きるんだけどなんで? ちなみにDouble.valueOf()でも起きたし NumberFormat.parse()でもParseExceptionが起きたんだけど どう解決すればいいの?
oh!!!!!!!!!!!!!! 2chに投稿したら変な文字がくっついてたのがわかった
エディタじゃ見えないのに投稿すると見えるようになるな なんだろこの文字コード
ああBOMか
762 :
デフォルトの名無しさん :2012/01/29(日) 09:17:58.78
どっかからコピーしてきたときにたまにいるわ
爆弾?
ByteOrderMark
動作自体は2.2でOKなアプリなんですが、2.3以降で動作する場合は android:screenOrientation="sensorLandscape" を指定したいのです。 AndroidManifest.xmlにsensorLandscapeを指定すると、buildターゲットは 2.3以降にする必要があります(ターゲット2.2だとコンパイルエラー) ただ、android:minSdkVersionは="8"です。こういう設定のapkは2.2の実機に インストールできるものでしょうか? 手元の実機が2.3以降のものなので、実験出来ません。よろしくお願いします。
2.2のエミュで試してみればいいんじゃない
767 :
765 :2012/01/29(日) 10:37:29.18
>>766 おっしゃる通り、エミュレータでは起動したので、OKってことにします。
ただ、2.2では解釈出来ない要素がmanifest.xmlに入ってるので、ちょっと気持ち悪いですが。
そういうのは特に問題ないのでしょうか?
screenOrientationにはlandscapeを指定して、プログラム側でOSが2.3以降だったら
sensorLandscapeに実行時に切り替えられると良いかと思ったのですが、起動前に
参照しなければいけない設定なので、どうしようもないですね。
SDカードにインストールできるアプリでもminSdkVersion=4 とかかけるから 古いバージョンでは対応していない属性を書くこと自体は問題ない android:screenOrientation="nosensor" setRequestedOrientation( mode==0? ActivityInfo.SCREEN_ORIENTATION_FULL_SENSOR :mode==1? ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE :mode==2? ActivityInfo.SCREEN_ORIENTATION_PORTRAIT :mode==3? ActivityInfo.SCREEN_ORIENTATION_NOSENSOR : ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED ); SCREEN_ORIENTATION_SENSOR_LANDSCAPE もあるよ
769 :
765 :2012/01/29(日) 11:35:49.48
770 :
デフォルトの名無しさん :2012/01/29(日) 15:38:33.83
Toastの表示する場所や色をカスタマイズする方法があったら教えて下さい
Toast#setGravity とか Toast#setView とかではだめかね
772 :
デフォルトの名無しさん :2012/01/29(日) 16:18:55.38
>>771 それでできそうです
ありがとうございました
773 :
デフォルトの名無しさん :2012/01/29(日) 16:45:37.67
端末から電話発信がされたらそれを検知して,発信先の電話番号を取得してごにょごにょしたいと思っています. Serviceで,PhoneStateListenerのonCallStateChangedをオーバーライドしたインスタンスをlistenしても着信しか取れなかったのですが, どうやったらよいでしょうか?
>>773 そんなブロードキャストはない。
ContentResolver経由で通話履歴を取得する。
OCR機能って個人では入手できない?
Android関係ねえ
777 :
773 :2012/01/29(日) 18:44:53.76
>>774 そうなんですか.
では,専用のスレッドを作って,一定間隔で調べ続けるのがいいんでしょうか?
>>777 データ変更通知を受け取るコールバックを登録できるだろ
779 :
デフォルトの名無しさん :2012/01/29(日) 19:03:09.15
setcontentviewの読み込み完了時になにかイベントを起こすことってできますか?
780 :
デフォルトの名無しさん :2012/01/29(日) 20:16:18.04
WebViewで、画面に表示してるテキストボックスとかの要素にアプリ側から値を設定することできないでしょうか?
webView.loadUrl("javascript: document.getElementById(\"foo\").value = \"bar\";"); みたいなことをやればできるはず
おお、loadUrlをもう一度呼ぶ発想がなかった。やってみます。
javaで、コンパイル日時に置き換えてくれる、c言語でいう__DATE__や__TIME__みたいなものありますか?
ありません
インストールされたAPKファイルのzip中のファイルエントリから日時を読む、って方法が取れる ただし結構手間
画面(View)を一切使わずにToastだけ表示させる事ってできますか? 画面上でToastだけ表示させたいんですが
787 :
デフォルトの名無しさん :2012/01/29(日) 21:20:09.36
>>786 android:theme="@android:style/Theme.NoDisplay"
789 :
デフォルトの名無しさん :2012/01/29(日) 22:18:39.49
Failed to load properties file for project プロジェクト名というエラーが出てしまいます この文言でググると情報が出てきますが、どこのフォルダを削除すればいいのかパスがよく分かりません 助けてください
ワンセグのアプリを作ることは可能ですか?
ワンセグってガラスマの機種により独自実装じゃない ハードの仕様がメーカー以外わからん
792 :
789 :2012/01/29(日) 22:32:31.98
解決しました C:\Users\Kazuhito Tadano\.androidでした お騒がせしました
噴いた
794 :
デフォルトの名無しさん :2012/01/29(日) 22:40:49.40
float theta = 0.0f/*通常時は変数*/ / 180.0f * (float)Math.PI; mon_x = mon_x + (float)Math.cos(theta) * 0.01f; mon_y = mon_y + (float)Math.sin(theta) * 0.01f; 画像の向きに少しずつ移動させたいんですがこのままだと横向きに移動します これを下向きに移動させたい場合はどうしたらいいでしょう? 現在 □→□ 理想 □ ↓ □
>>794 それで横に動いてるならxとyを入れ替えたらいいだろ?
ListViewで最初と最後の行を連結したような表示は可能でしょうか? ListViewを操作したときに、一番最初の要素の上に最後の要素が表示されて、 終端がなくループできるようなものが作りたいんですが、やり方がいまいち分かりません。 よろしくお願いします。
799 :
デフォルトの名無しさん :2012/01/29(日) 23:37:35.13
>>795 cosとsinを変えただけだと優柔不断になったのでyに-1したら出来ました
こすい
Twitterのクライアントアプリつくってるんですけどwebviewの上にedittext置いたらwebviewでツイッターの認証しようとしても上のedittextにしかテキスト入力できなくなってしまいました。 エミュレータではちゃんと動いたのですが、実機でやると上記の状態になります。 何故でしょうか?
AppWidgetのANR対策ってServiceで更新するしかない? ググってAsyncTask使えばなんとかなるって書いてあったけど、やっぱり再起動時にANRになってデータを読み込んでくれないんだよね
eclipseの同じバージョンを使っていて、従来はandroid SDKおよびAVDマネージャーだったのが SDKとAVDマネージャーに分離されてしまいました 原因はなんでしょうか
Googleに聞いてください
世界を変えようぜ?
>>798 そんなのListViewじゃ色々とムリだからViewGroupの派生クラスを自分で実装しろ
ListViewの内部をリングキューで持てばいい
808 :
783 :2012/01/30(月) 08:28:47.31
>>784 ,785
ありがとうございます。
基本的な方法にはないんですね…
デバッグしてるときちゃんとインストールされて最新ので試せてるのか分からなくなることがあったのであればいいな、程度だったのでとりあえず我慢します
806,807 有難うございます。 結構難しそうですね。色々と調べながら実装してみます。
Eclipse3.7+NDK r7でndkのディレクトリにパスも通ってるはずなんだけど #include <jni.ini>の行で以下の警告が出ていて Multiple markers at this line - Unresolved inclusion: <jni.h> - jni.h: No such file or directory jni.iniが見つからないのかになってて困ってます jni.iniのあるディレクトリまでパスを通しておかないといけないんでしょうか?
パスも何も、今は${NDK_ROOT}/ndk-build を実行するだけだけど。
ndk-buildを晒してみると幸せになるかも
既出だったらすいません。 WebViewを使ったアプリを作ってるのですが、4.0.3だとリンクを選択した時のフォーカス枠が表示されません。 googleブラウザでは表示されているので、方法はあると思うのですが、 何か必要な設定などあるのでしょうか?
ファイルをapkに組み込んで プログラム内からファイルとして読み込みたいんですが どうやればできますか?パスとか
assets
AppWidgetProviderのonUpdateでサービスクラスをstartServiceで動かしてるはずなのにログにもでません。 javaの記述ではなくmanifestの記述が悪いのでしょうか 以下onUpdate記述内容 Intent intent = new Intent(context, MyService.class); context.startService(intent);
>>816 そりゃ、Androidは勝手にログなんか出さないからな。
マジレスするとAndroidManifest.xmlにサービスの定義書いたか?
>>815 なるほどrawかassetsですね。ありがとうございます。
819 :
デフォルトの名無しさん :2012/01/30(月) 21:23:34.71
質問です。 AlertDialog内のsetMessageで文章に改行を入れたいんですが、 setMessage("hoge¥nhoge"); setMessage("hoge"+"¥n"+"hoge"); でも改行されません。。。 どうしたら、改行可能でしょうか?
>>817 マニフェストにサービスのクラス名をandroid:nameで定義しました。
また、MyServiceクラスのonStartにLog,dでログの記述をしています。
>>820 そのandroid:nameは<service>内で定義してる?
>>821 <service android:name="MyService"></service>と記述しています。
DDMS上に「cmp=パッケージ/.MyAppWidget$MyService bnds=[120,394][240,466] }: not found」
と出力されたので、作ったサービスクラスを見つけられないみたいです。マニフェストを色々弄ってみます。
>>821 MyServiceクラスを同パッケージ・別ファイルで作成したところ、サービスのonStartを確認出来ました。
お騒がせ致しました。ありがとうございます。
824 :
786 :2012/01/30(月) 23:12:44.98
>>787 返事が遅れました
実装できました
xml指定でこんな事も出来るんですねー
ありがとうございました
Equalizer, BassBoostは動いたけど、PresetReverbが動かない! idは mediaPlayer.getAudioSessionId()にしてる。 誰かエスパーして!
>>819 普通に改行できるけどなー。
スペースに見えるけど、間には\nを指定してるんだよね?
alertDialogBuilder.setMessage("改行前\n改行後")
827 :
819 :2012/01/30(月) 23:43:58.87
>>826 え?マジでw
なんで、改行されないんだろ。。
ちょっと悩んでみます。
>>825 困った時はsetEnabled(true)ってばあちゃんが言ってた
829 :
デフォルトの名無しさん :2012/01/31(火) 00:37:09.16
findViewById()というメソッドは、Activityクラスのメソッドらしいのですが、 これをandroid.app.Activity.findViewById()と略さずに書いたらエラーが出てしまいます。 staticじゃないから使えないという なんでですか?
>>819 \ (バックスラッシュ) と \ (円) は違う、とかそういうことじゃない?
831 :
830 :2012/01/31(火) 00:52:04.18
あれ、入力し分けれなかった
832 :
デフォルトの名無しさん :2012/01/31(火) 00:57:53.99
基礎的な事でスマン。 XMLで例えばボタンのレイアウトを指定する時に ボタン ボタン ボタン(改行) ボタン ってやるにはどうしたら良い? さっきから全然出来なくて困ってる…。
>>832 TableLayout を使うか、GridLayout を使うか、RelativeLayout を使うか、
縦向きの LinearLayout の中に横向きの LinearLayout を入れ子にするとか
>>833 今LinearLayoutを入れ子でやってみたんだけど
<LinearLayout (略) android:orientation="horizontal" >
ボタン1
ボタン2
<LinearLayout (略) android:orientation="vertical" >
ボタン3
ボタン4
</>
</>
って書くと
ボタン1 ボタン2 ボタン3
ボタン4
って出て謎すぎだわ。もうこのレイアウトめんどすぎ助けてw
>>834 たぶんこうしたいんじゃないか
<LinearLayout (略) android:orientation="vertical">
<LinearLayout (略) android:orientation="horizonal" >
ボタン1
ボタン2
</LinearLayout>
<LinearLayout (略) android:orientation="horizonal" >
ボタン3
ボタン4
</LinearLayout>
</LinearLayout>
>>835 おー出来たww急ぎだったから助かったわ有難う。
たったこんだけの事で1時間ぐらい悩んでた。
GUIのユーザビリティ本当悪すぎるだろこれ・・・。
GUIなんて使うな
初歩的な質問ですが、Activityは1つの画面で1つが普通なのでしょうか。 今までActivity1つでsetContentViewを駆使して画面遷移していたのですが、 イベント判定が増えてくると苦しくなってきました
日付の取得について質問です。 ユーザーが手で端末の日付を変更すると、 その後うまく取れない (変更前の日付が取れる) んですが、 なんかうまく取れる方法ありますか?
>>823 自己解決したようだが、
インナークラスはpublic staticにしたんだろうな
あれ 非公式だったAndroidMarketAPIってもう使えなくなった? マーケットからDL数とかとりたかったんだけど値がとれないんだよね
842 :
813 :2012/01/31(火) 09:14:49.03
自己解決しました。 ハードウェアアクセサレーションをONにしないと、 4.0.3のwebviewではリンクを選択した時のフォーカス枠が表示されないようです。 ONにしたら表示されました。
843 :
819 :2012/01/31(火) 09:41:12.17
>>830 いや、、、さすがにそのミスはないですw
未だ改行できず。。。
>>841 検索自体は大丈夫だよ
getDownloadsCountがだめってこと?
うおおおおおおおおおおおお しばらく使ってなかったらエミュがLANにつながLAN
>844 いやー ResponseのentriesCountが0で返ってくるようになってて全部とれてないね 最近なんか変わったのかな?去年の8月はとれてたんだけど。。
iPhone のように、フルスクリーン座標をしようしつつ ステータスバーを表示することって可能? あと、ステータスバーを半透明にってできるかな。
>>838 分けた方が楽だけどアプリの内容によっては
>>849 途中で送信してしまった
アプリによっては遷移の管理とか情報の受け渡しでまた面倒になる場合も
>>843 Macでなんかなったことがあるような気がしたけど
いま書いてみたら普通に改行したなあ
改行しない代わりにどう表示されるのかな
\nがなかったことになってくっついてるのか、
それともそのまま文字列として表示されてるのか
スリープ状態オンとオフでActivityのサイクルの流れが変わりますが、 スリープ状態をオフにするのはよくないのでしょうか スリープ状態を許可するとOnCreateからはじまったり OnRestartから再開したりします みなさん、どこからきてもいいように対応されてるのでしょうか
そりゃあもちろん、いつ何時、強制終了→再起動されても平気なように作るのが、正道だ 実際には面倒くさいから真面目に対応してない部分もある 俗にいう妥協とかいうやつだな 場合によりけり
やはりそうですね 値を保持しているときとそうでないときがあり、 復帰後、操作を続行すると思わぬ処理ヘインというケースがあったので
質問なのですが ListViewのスクロールの位置を ソフトウェア側で設定するにはどうすればよいのでしょうか? 最下層に要素を増やしたときにそこにスクロールさせたいのですが
857 :
841 :2012/01/31(火) 17:12:45.15
>>852 ありがとう Javaだけど同じように試してみたら280件中10件だけとれたw
パッケージ名を指定して検索してるんだけど、なんで全部とれないんだろう
アプリ公開側の設定かな? 全部取得したいなぁ
>>857 わたしも先週から検索がおかしくなってしまいました。
googlemapで検索してもモバイルGoogleマップが出てきません・・・
こちらの”サンプル↓別ウィンドウで結果が開きます。”で試すと出てくるので
何か設定があるのかもしれません
ttp://doroidpanic.com/?p=44 なにかわかったら教えてください
859 :
841 :2012/01/31(火) 18:05:56.05
わかったぜーw 端末のDevicdIdをセットしたら以前と同じように動くようになった。 端末のDeviceIdの確認の仕方は電話*♯*♯8255*♯*♯とするとGTalkServiceMonitorが起動して、その中のDeviceIdのandroid-以降の文字列を指定 これでいけたーみんなマジでサンクス
>>856 setSelectionFromTop() かな
>>841 おー良かった
しかしDeviceIdで結果が変わるって・・・謎仕様ですね
862 :
デフォルトの名無しさん :2012/02/01(水) 00:36:47.21
アプリからホームボタンを押した時のように、ホームに戻るにはどうすればよいでしょうか? ホームボタンがへたってきたので、ランチャーにアイコン登録してホームに戻れるようにしたいです。 ヒストリー残さないようにしてfinish()すれば良いのかと思ったのですが、それだとそのアプリしか終わらなかったもので。
appwidgetでタッチイベントって取れない? クリックならpendingIntentで取れたんだけどタッチイベントの取り方がわからない。 誰かご存知ないですか?
864 :
862 :2012/02/01(水) 00:38:34.51
すみません、あげてしまった…
ACTION_SENDでファイルを受け取れるようにしたのはいいんだが、 Gmailの添付ファイルを送られるとIllegalStateExceptionやSecurityExceptionで落ちる/^o^\ これEmailのパーミッション付けるしかないですかね? 余計なパーミッション付けたくないのに・・。
867 :
デフォルトの名無しさん :2012/02/01(水) 03:02:32.27
アプリの起動時から終了まで維持されるセッションIDみたいなものはあるでしょうか。
868 :
デフォルトの名無しさん :2012/02/01(水) 03:06:03.44
ListViewが伸びると、ListViewの下においてあるImageViewが押しつぶされてしまうんですが ImageViewを下に固定できんのかいっ!!って感じなんだけど ImageViewが潰されない方法ってあります?
869 :
デフォルトの名無しさん :2012/02/01(水) 03:07:33.80
>>867 SplashでSharedPreferencesを使って、毎回生成じゃだめ?
WidgetのConfigureActivityで生成されたviewの状態(backgroud,widh,height,listの中身等の状態)をWidgetProviderに渡したいんだけど Parcelableだと渡した瞬間に消滅しちゃいますか? スマートな方法あれば教えて下さい
>>868 <LinearLayout android:layout_weight="1">
<ListView />
</LinearLayout>
<LinearLayout android:layout_gravity="bottom" android:layout_height="wrap_content">
<!-- 下に置くview -->
</LinearLayout>
こんな感じでやればうまくいくと思う
マーケットでアプリを更新した時って反映されるまで1時間以上かかるんだけどオレだけ?もっと早くできないの?
>>870 消滅する?つまり何がしたいのでしょうか?
GPS使ったアプリのデバッグってどうやるの? いくつかルートを設定して疑似的に移動させたいんだけど
>>862 Intent intent = new Intent();
intent.setAction(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
>>872 そんなもんじゃない?
なかなか反映されない場合マーケットのキャッシュ消す。
877 :
デフォルトの名無しさん :2012/02/01(水) 11:49:58.55
>>874 携帯のほうの疑似ロケーションを有効にして使えばいいんでね?
apkの容量ってどのくらいまで許可されていますか? 16Mバイトくらいですか?
879 :
デフォルトの名無しさん :2012/02/01(水) 16:33:01.49
>>878 48MBくらいのゲームあったから大丈夫だけどできれば少ないほうがいいと思う
>>878 AndroidMarketの場合は50M制限
882 :
デフォルトの名無しさん :2012/02/01(水) 21:43:41.57
どちらかのボタンを押すとメインメソッドに戻るようにしたいのですがどうすればよいでしょか? ソースコードはこんな感じになっています↓ 見にくくてすみません メインメソッド{ if(a==1){ method(); }else if(a==2) } } public void method(){ Button Button1 = (割愛) Button1.setOnClickListener( new view.OnClickListener() { public void onclick(view v){ }}); Button Button2 = (割愛) Button2.setOnClickListener( new view.OnClickListener() { public void onclick(view v){ }}); }
883 :
デフォルトの名無しさん :2012/02/01(水) 21:45:27.00
三重憎い
普通に onClick の中からメインメソッド呼べば?
885 :
デフォルトの名無しさん :2012/02/01(水) 22:02:50.85
>884 なるほどその手がありましたか ありがとうございます。 どう呼び出せばいいのでしょうか? onCreate(null);と呼び出すと、ボタンの中のビューで出した画像が消えてしまいます。 ちなみにボタンを押すと画像が表示されるようになっています。
メインメソッドって? Androidアプリが普通のJavaアプリケーションと同じ仕組みだと思ってるの?
他アプリが現在表示させているToastを消すか、マウントして自アプリのToastを表示させたいのですが 可能でしょうか?
888 :
デフォルトの名無しさん :2012/02/01(水) 22:13:36.96
>886 メインメソッドはこれのことです↓ 違うのですか、ほとんど同じだと思ってました。 public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main);
メインメソッドってonCreateのこと? こんなの自分で呼び出すもんじゃない 戻る必要性は無い
890 :
デフォルトの名無しさん :2012/02/01(水) 22:19:02.87
onCreateはアプリ起動時にいろんな初期化処理を行うところ ここでボタンのインスタンスを用意したりリスナを登録したりしておく それでonCreateの役目はおしまい で、ボタンが押され次第処理を行うコードはまた別に書いておく onClickに直接書いてもいいし長ければ別メソッドにしておいてそこから呼び出してもいい
メソッドの途中でreturnしたければ入れてもいいし メソッドの終端に達すれば勝手にreturnするのと同じ事になる
893 :
デフォルトの名無しさん :2012/02/01(水) 22:34:54.56
>>891 onCreateは最低method();とだけ書いていてもいいということですね
>>892 そうですか、ありがとうございます。
android以前に単純にGUIプログラミングの勉強不足だなあそれ
>>893 全然違う
onCreateはonCreateで用意しなければならない
それとは別にmethodを作ってもいい
1回だけ実行される初期化処理とボタンが押されるたびに何度も実行される処理は分離すべき。 一つのメソッド内に無関係の処理を詰め込むな。 そんなだから戻りたいなんて発想が出てくるんだろ。 条件分岐みたいな無駄なコードが増える。
developeの、日本語に訳されてる部分だけでも、読んだ方がいい。 そうしないと、ずいぶん遠回りをすることになるよ。
イベント駆動が理解できてないんだろ
com.android.ddmlib.InstallExceptionの主な原因ってなんでしょうか? ググってみたのですが環境変数も弄りましたしコンパイラも1.6に なってます。他に直すところはありますか? ちなみにeclipseでAndroidAPIは9、バージョンは2.3です。
900 :
862 :2012/02/01(水) 23:02:31.28
>>875 できました!ありがとうございます!
こういうインテントが存在するかどうかってみなさんどのように調べるのでしょう?ACTION_SENDなどなら本に載ってるので分かるのですが…
901 :
デフォルトの名無しさん :2012/02/01(水) 23:06:10.43
効果音とかの素材ってどこで手に入れてる?
903 :
899 :2012/02/01(水) 23:24:43.88
すみません。自己解決しました!PC再起動したら直りました! メモリのせいだったんですかね・・・
surfaceviewについての質問なのですが 画面上をビットマップ画像が動くようなプログラムを作っています run()の中身が while(true){ Canvas canvas ロック for(i=20){ bitmap = createbitmap drawcanvas(bitmap,Xi,Yi) Xi+=Vxi Yi+=Vyi その他反射処理など } アンロック } かなり省略していますが、これが起動後少しは動くのですが、途中でcreatebitmapまわりのOutOfMemoryで落ちてしまいます うまくメモリを抑えながらループをまわす方法はありませんか? ご指導お願いします
>>904 createbitmapはループの外で
他のアプリがNotificationManageで表示した 通知の内容を取得するにはどうしたらいいでしょうか?
>>905 ありがとうございました!
解決しました
>>906 NotificationManagerからは通知内容を取得できませんし、そうさせないようになっています。
この場合ユーザ補助機能を使います。
AccessibilityServiceを実装し、通知タイプのイベントがきたらキャッチしてSharedPreferencesあたりにぶちこみます
今度はActivity側でOnSharedPreferenceChangeListenerを実装してSharedPreferencesからgetすればいいです
AccessibilityServiceでググるともっと詳しい情報が見つかると思います。
ちなみにユーザ補助機能を使う場合はapkをインストール後 設定→ユーザ補助 でインストールしたアプリにチェックをつけてやる必要があります。
ちなみに実装していて気付くと思いますが、 AccessibilityServiceを使うとそりゃもう酷いいたずらアプリが作れちゃいますから 悪いことしちゃだめヨ☆
911 :
862 :2012/02/02(木) 11:44:02.98
画面が縦横変わったりするとOnCreateに無条件に入るのってどうしようもないでしょうか
タスク処理中でも全部キャンセルされてOnCreate あー困った
画面を固定する
>>912 この質問何回も出るしテンプレ入りでいいと思うわ
android:configchanges="orientation"
ありがとうございます 教えていただいたのを ぐぐって android:configChanges="mcc|mnc|locale|keyboard|keyboardHidden|orientation|screenLayout|fontScale|uiMode" で完全対応!
orientationと同じような割り込みは、 いつでも起き得ると考えた方がいい。
>>908-909 ご丁寧にありがとうございます。
試してみます。
悪いことには使わないですw
アプリ内課金実装したら、 "This version of the application is not configured for Market Billing" なんて怒られてアイテムを買えません 海外フォーラムでは「デバッグモードじゃなく署名してビルドすればおk」と言われていますが アップロードできる状態のApkでも怒られます
>>867 Activity#getTaskId() ?
apkをアップしてスクリーンショットをアップしようとした時に「応答を解析できません。JSON応答を変更するブラウザ拡張機能やアドオンがインストールされている場合は、それを無効にしてからこのページを更新して下さい」になる ググったり過去ログ見たけどセキュリティ系ではなさそうだしなんか原因わかる香具師いたら教えて下さい ブラウザもIE,FF,Chrome、Opera試しましたがダメでした
まだアップした事は無いんだが…。 エミュレータでスクショ取れるよね、あれではあかんの?
ごめん、早とちりした。
924 :
デフォルトの名無しさん :2012/02/02(木) 23:50:54.10
>>921 Chromeで1回あげたけどエラーはなかったな
とりあえずChromeで全部アドオン無効にしてやってみたら?
>>921 おれも1回だけなったことあるな
しばらくほっておいたらできるようになったような…
自分のアプリでContentProviderを継承したクラスを使ってます。
このクラス名を含むエラー内容が、デベローパーコンソールで定期的に報告されてるんですが、原因が分からず非常に困ってます。
インストールする時に失敗してるのかな?と思いますが、どんな状況なのかイマイチ分かりません。
下の海外サイトも参考にしたんですが、解決には至りませんでした。
http://stackoverflow.com/questions/6303285/classnotfoundexception-for-a-contentprovider 報告されたエラーログを記載します。(***.***.***はパッケージ名です)
java.lang.RuntimeException: Unable to get provider ***.***.***.DBProvider: java.lang.ClassNotFoundException: ***.***.***.DBProvider in loader dalvik.system.PathClassLoader[/mnt/asec/***.***.***-2/pkg.apk]
(省略)
Caused by: java.lang.ClassNotFoundException: ***.***.***.DBProvider in loader dalvik.system.PathClassLoader[/mnt/asec/***.***.***-2/pkg.apk]
at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:240)
at java.lang.ClassLoader.loadClass(ClassLoader.java:551)
at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
at android.app.ActivityThread.installProvider(ActivityThread.java:3569)
ログの省略部分は、参考にした海外サイトとほとんど同じです。(文字数規制で省略しました)
ちなみにソースコードは難読化してません。
実機では4機種で試しました。
どなたか解決方法をご存じの方はいませんか?
よろしくお願いします。
927 :
デフォルトの名無しさん :2012/02/04(土) 09:39:48.07
なんとか、 ステータスバーにオーバーレイで、文字を書きたいのですが。 ステータスバーに限らず、ディスプレイ全般にも、オーバーレイしたいです。
頑張ってください!
929 :
デフォルトの名無しさん :2012/02/04(土) 12:15:05.82
へい、 ははww
>>927 期待を込めて星一つとさせていただきます!
931 :
デフォルトの名無しさん :2012/02/04(土) 13:19:39.61
蟻10 じゃ、ヒント?
eclipseでCtrl+F11でアプリを実機端末にロード&実行したら 端末内の画面でランチャーがハングアップしたって表示されて、アプリ自体はその直後起動したんだけどそういうことってある?
933 :
デフォルトの名無しさん :2012/02/04(土) 13:46:31.10
android:configChanges="orientation"って最近知ったんだけど 今まで画面回転のActivity再生成に苦心した日々はなんだったんだぁ ところで、これだけで本当に「レイアウトは縦横変更されてActivity再生成はしない」? 経験則で良いから聞きたいんですが 要は実装した画面回転対応部分を残すかどうかだけなんだけど
無くしたらHOMEキー後の復帰どうするつもりだ
>>933 レイアウトが縦横変更されるわけじゃなく、単に現在のレイアウトが新しい画面の向きとサイズになるだけ
layout-port とか layout-land で縦横別々のレイアウトを作ってる場合は自分で読み直さないと変わらない
要するにそれは縦横変更を自分でハンドリングしますよっていう宣言なの
あと、Activity 再生成しないのは、画面回転が理由な場合だけ
何か他の要因が起きれば相変わらず再生成されることはあるから、対応しとくのは無駄ではない
>>934 onDestroy → onCreateで一から作り直されちゃう場合のことだったのよ
分かりにくかったかもだけど
>>935 ありがとう
とりあえず端末によって動作が変わったりってのは無いようで
対応部分は残しておくよ
助かりました。
Socket通信プログラムでのサーバー側についての質問です。 無料Webサーバーや自宅PCサーバーにCGIやJavaで作ったサーバープログラムを立てて Android端末はクライアントとして接続。これは問題なく理解していて出来ます。 逆にAndroid端末をサーバーとして利用したいと考えた場合 3G回線の場合はアクセス毎にIPが動的に変化してしまうため不可能に思っています。 何か方法はないのでしょうか? 機種固体識別IDを利用してやる方法とかあったりするのでしょうか? 最終的にはAndroid端末(スマホ)をWebサーバーにしたりするソフト、 Android端末同士でダイレクトに通信するソフトを作れたらいいなと思っています。 お手数おかけしますが、「可能」「不可能」わかる方いらっしゃいましたらよろしくお願いします。
>>937 Androidは素人だがネットワーク的な回答を。
DDNS使えばIPアドレスの動的変更は問題にならん。
が、不特定多数が使うものだとDDNSは非現実的なので
>>938 の通り中継サーバになる
またwifiはともかく3Gだとネットワーク的な制限があって通信できない可能性がある。
ネットワーク面は素人そうだししっかり調べてやってみてくれ。
Android的な制限についてはないと思うけど素人なのでワカンネ
>>938-939 早速のご回答ありがとうございます。
今も調べながらここに書き込んでいます。
DDNSの存在を忘れていました…。
やはり基本は中継サーバーが必要になってしまうんでしょうか…
理想はその中継サーバー自体の動作もAndroid端末内で完結したいんですよね
サーバーって普段は休眠状態で、クライアントから「ほれほれ」とパケットで突付かれると「ハッ!」と目覚めて処理を
返してくれますよね。
これと同じように普段は休眠状態のAndroid端末があり、それを他のAndroid端末かPCから「ほれほれ」とパケットで突付くと
「ハッ!」と目覚めて処理を返してくれる、こんな動作が理想なのです(まさにWebサーバー的な動き)
バッテリー消費も抑えられますし…。
SMS受信通知とか電話受信のように受身にしたいんですよね。
SMS受信通知なんかは、仕組みはよくわかりませんが
なんらかの形でこっちの端末を識別して、向こうから発信してくれてる感じですよね。
SMSで出来るなら似たような事できるのでは?…とつい期待してしまうのです(汗)
中継サーバとTCPで繋ぎっぱなしにしとくとか 端末がスリープに入ったら切れちゃうか?
コンパイルエラーが起きると Eclipseのソースコードウィンドウの右側の縦のライン上に赤い印が出るけど、ごくたまに コンパイルエラーを取った後もまだその赤印が残ってずっと消えなくなることない?
>>940 なにかごちゃ混ぜになってるよ
普段は休眠状態で通知があったときに動作するということはAndroidの機能としてできます
ただその通知がサーバじゃないとできませんよということです
SMSも当然サーバを介しています
もしかしたらできるのかもしれませんが私は知らない
キーワードはC2DMかな
>>940 ちょっとスレ違いになるけどネットワークの話。
叩かれると目覚めるわけじゃないぞ。基本はピッチャーとキャッチャーの関係だ
キャッチャーが常に構え続けていないと、ピッチャーがボール投げても受け取れない
SMS通知だって3G電波受信して常に構えている状態だ(機内モードじゃ無理だろう?)
少なくとも常にネットワークに常に繋げて構えた状態にしていないと、相手から叩かれたことにすら気づけん
Ustreamのチャンネルを視聴するアプリの作成は可能ですか? ぐぐったら情報が少なくフラッシュビルダーやflexでつくるみたいですが
可能
スレッドの中からcontextを取る方法ありますか? createPackageContextができない・・・
>>948 getApplicationContext()
>>949 ありがとう
でもそれってクラスにActivityを継承しないと呼べないよね
951 :
949 :2012/02/05(日) 03:47:08.22
インナークラスなら行ける Activity以外の別クラスからだったら渡す以外方法ないかも
>>950 activityにコンテキストをgetする関数を実装すればいじゃない
AsyncTask の 下記の T1,T2,T3について質問ですが、 public class DownloadTask extends AsyncTask<T1, T2, T3> { @Override protected T3 doInBackground(T1... args) { } @Override protected void onPostExecute(T3 result) { } } T1は 別スレッド処理への引き数 T3は 別スレッドから終了関数への引き渡しデータ という事でわかったのですが、T2はどのように利用されるのでしょうか?
publishProgress と onProgressUpdate で使う
955 :
デフォルトの名無しさん :2012/02/05(日) 12:04:30.48
タッチイベントリスナーを使って3Dの箱をくるくる回したい @右に画面なぞった時、A左に画面なぞった時 で逆に回るようにしたいんだが @の場合は+Aの場合は- を回転変数に渡したいんだがうまくいかずどっちかしか渡らず 同じ方向にしか回らない タスケテ
左右を判定している部分をよく見直すんだ! という以上のアドバイスはそれだけの情報ではむり。
>>955 まず、逆に回さない場合はうまく行ってるのか?
そうだとして、+、−が方向をあらわすのも間違ってないとすると
変数を渡す直前に-1をかけるだけでいいんじゃないか?
後はLOGで渡す変数が意図した変数になってるか確認すること
>>955 ちなみにSDKのsampleのAPIDemosに3Dのボックスを回す処理があるんだけど
(APIDemos→Graphics→OpenGL ES→Touch Rotateにある)
TouchRotateActivity.javaのonTouchEventの処理で
試しに95行目の
mRenderer.mAngleX += dx * TOUCH_SCALE_FACTOR;
を
mRenderer.mAngleX += (-dx) * TOUCH_SCALE_FACTOR;
にしたら左右逆に回ったぞ
俺って暇だろ
でも、ちょっとだけそんけいしてあげるんだからね。
960 :
デフォルトの名無しさん :2012/02/05(日) 12:57:04.02
public boolean onTouchEvent(MotionEvent e) { // float x1=e.getX(); switch(e.getAction()){ case MotionEvent.ACTION_MOVE: // float x2=e.getX()-x1; mGlView.setAngle(mGlView.getAngle()-10);break; } 今こんな感じ 画面こすると一定方向にだけくるくる回る ブレイク前の-10を*x2にすれば行きそうな感じだけど型違いで全然合わない サンプルも見てるけど自分のと違ってよくわからん
型違いは int か何かにキャストすればいいだけじゃないかなたぶん x1 は前回タッチイベントが起きた時のものを保存しておかないといけないと思うよ
>>954 どうもありがとうございます!
別件ですが、
AsyncTaskでdoInBackground()が終了してるのに
onPostExecute()が呼ばれない時があるんですが、そんな事はありますか? SDKは android 2.1です。
>>962 cancel したら onPostExecute が呼ばれない代わりに onCancelled が呼ばれる
965 :
デフォルトの名無しさん :2012/02/05(日) 14:42:25.05
new AlertDialog.Builder(this) .setTitle("ファイルを選択") .setItems(FileNames, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // safety if (which < FileNames.length) { // ファイルの中身を表示する ShowFile(FileNames[which]); } } }) .show(); アラートダイアログを使って上記処理を行っていますが、 これに加えて、アイテムを長押し(LongClick)した時に 別の処理をしたいと考えています。 これは標準のAlertDialogではどう頑張っても無理でしょうか? このスレでも独自にダイアログを作成している方の質問が ありましたが、独自に作らないとダメでしょうか?
フレームレイアウトの中にリストビュー(リストの中はイメージビュー+テキストビュー)とイメージビュー(サイズ小)を重ねるように置いて、 イメージビューにdrawtextで文字書いてからリストビューをタップすると、 重なってる場所の一部の文字が消えるんだけどなにが起こっているんでしょうか? 取りあえずの対処として、イメージビューを完全にリストを覆うようなサイズにして、 必要な箇所のみ描いて他透明にして問題なく動いてますがこれで良いんでしょうか
なんか違う、リストビューにsetOnItemClickListener、イメージビューにsetOnTouchListenerセットしてると駄目だった イメージビューをClickに変えたら直った。 出来ればtouchにしたいんだけど、全部統一したら直るんだろうか
ListViewを使い、SimpleAdapterを継承したクラスで画像とテキストを表示できるようにして、
特定のリストの背景色を変える処理にしています。
最初表示されるときは意図した背景色になりますが、画面をタップすると
背景色が意図していない別のリストにも適用されてしまい意味不明…
調べてみると、ListView#setScrollingCacheEnabled(false)にすると良いとあり
試しましたが全く状況が変わりません。
ttp://d.hatena.ne.jp/yokkong/20110426/1303805401 どうしたら解決できるのか、誰かお助けを><
>>968 特定のリストの背景色以外をきちんとセットしたら直ったと思う
暇つぶしに作成をしてみようと、色々書籍を見て回ったのですが HTMLで作る。や、JAVAScriptで作る。だったり 開発ソフトも、ecipseだったり他のソフトだったり、と書籍によって異なったのですが 作りやすいのはどれなのでしょうか。JavaやHTMLは触れます。
何を作るんだよw
なんでもいいのです。 ただJava触れたら作れる。と聞いたので 試しに、なにかを作ってみようかと…。 Hello Wordくらいだったら、どれも出来そうですが いまいち開発ソフトの違いが分からなくて…
eclipse無難
ありがとうございます eclipse使ってみます
イクリプス以外で作れるんでしょうか?
Cpad
Javaでの開発についてEclipse以外の方法で解説している書籍なんて出てるの?
>>970 できました!とても助かりました。
二日悩みましたが、その発想は出てこなかったです。
N2 TTSでも使えば?
>>971 androidアプリと、android向けWEBサイトの本を混同しているように見える。
両者は全く違うぞ。
androidアプリならeclipseの一択。
普段NetBeans使ってるなら、そっちでやる手も無いことは無いが・・・
エラーの原因が分かりません。誰か助けて下さい。 java.lang.SecurityException: Injecting to another application requires INJECT_EVENTS permission 当然ながら、AndroidManifest.xmlには <uses-permission android:name="android.permission.INJECT_EVENTS" />と記載しています。
986 :
デフォルトの名無しさん :2012/02/05(日) 18:32:25.58
ゲームなどに使うGLsurfaceviewとかを表示するときに数秒時間がかかります この数秒の間黒い画面になるので表示にあまり時間のかからない画像を表示させたいのですが 参考になるサイトなどありませんか? activityを開く→黒い画面(読み込み中?)→viewの表示 を activityを開く→画像を表示(読み込み中に)→viewの表示 というふうにしたいです
987 :
980 :2012/02/05(日) 18:38:41.43
ご助言ありがとうございます. N2TTS,非常によいですね. でも出来れば,いろんな言語に対応しているので, Google Translateの音声合成を使いたいのです. 難しいのであれば,N2TTSを使いたいと思いますが・・・
988 :
984 :2012/02/05(日) 18:55:28.87
>>985 そのページは拝見していました。要は通常、セキュリティ違反だからできないって見解なのでしょうが、
Galaxy Nexusでは正常に機能したのです。
これは上記端末が開発者向けを視野に入れている為にファーム側が
今回のケースでのINJECT_EVENTS処理を許可しているのかもしれません。
(これはあくまで私の見解です。)
他の機種でデバッグすると必ずエラーになり、機能しませんでした。
因みに私がやろうとしている事はAndroid OS側のコードを
自アプリ(サービス)内でリフレクションし、特定のキーをフックしたかったのです。
よくよく考えれば恐ろしくセキュリティ的にアレなのですが、自由度の高いAndroidで実装できないと
いう事が非常に残念で仕方ありません。
990 :
980 :2012/02/05(日) 19:09:34.01
>>989 そのような仕様にすると,SDがないとデータを保存できなくなってしまいませんか?
すべての端末にSDが入っているわけではないので,そのような仕様は避けたいのですが・・・
(・。・;
SDが入っていないってメッセージ出すかそんな奇特な人は切り捨てるか
ある一つのクラスがコード量が多くなってしまいテキストファイルを2つに分けたいのですが、そんなこと無理ですか?
>>993 テキストファイルレベルで分けないといけないくらいのサイズになってる時点で
クラスの設計が悪いということ
以上
995 :
デフォルトの名無しさん :2012/02/05(日) 19:54:50.82
環境についてです (既出でしたら申し訳ない) 下記事象発生。原因はメモリとのことですが、 うちのPCスペックが低い?ため解消できず。 事象(他サイト転載)ーーーーーーーーーーーーーーーーーー ※なお,「エミュレータは起動するが,エミュレータ上のボタンをクリックしようとすると,エミュレータがハングする」という場合がある。 「問題が発生したため,emulator-arm.exeを終了します。」 というエラーメッセージで強制終了してしまうのだ。 この原因は単なるメモリ不足なので,いったんWindowsを再起動してからEclipseだけを立ち上げ,慎重にエミュレータを起動すればOK。 ーーーーーーーーーーーー お金かけず(メモリ増設せず)に解消する方法を 探しています。 ・設定等で回避 ・他のエミュレーター(あれば) など 申し訳ございませんが、ご教示願えますでしょうか
他のアプリを閉じる
パソコンを窓から投げる
SDKをアップデートする
SDKのバージョンを下げて昔の比較的軽いエミュを使う
>>995 Mac上のVMで動いてるWindows 7
にメモリを1Gバイト割り当てて
動いているのを512Mに減らしたら同じエラーが出た
仮想メモリをカスタムサイズ2048Mバイトに設定したら動いたけど
重たすぎて個人的には我慢できないと思った
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。