Androidプログラミング質問スレ Part10
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2011/07/04(月) 19:56:03.54※プログラミング自体が初めて!なあなたには↓↓↓こちらへ
【超初心者】プログラミング質問スレ【基礎】part5
http://hibari.2ch.net/test/read.cgi/tech/1303105502/ (dat落ち)
Eclipse統合M31【Java/C++/Ruby/Python/Perl】
http://hibari.2ch.net/test/read.cgi/tech/1295886572/
★★Java質問・相談スレッド146★★
http://hibari.2ch.net/test/read.cgi/tech/1309048597/
****関連リンク****
■ Android developers http://developer.android.com/
■ ソフトウェア技術ドキュメントを勝手に翻訳 http://www.techdoctranslator.com/
0153デフォルトの名無しさん
2011/07/08(金) 18:47:56.29追記:
エミュレータと実機で見た目も変わるし、もう泣けてくるwww
画面サイズ固定で、全部ビットマップにしちゃおうかなぁ〜 orz
0154デフォルトの名無しさん
2011/07/08(金) 20:21:41.61シンプルが一番!
0155デフォルトの名無しさん
2011/07/08(金) 20:22:10.50xmlで設定するパラメータの大半はjavaコードからも設定できるぞ。
そうすればプログラムを書くのに専念できるなw
真面目な話、javaコードから生成したほうが話が早いこともあると思う。同じようなフォームを延々と並べるような画面とか。
あと実験用プロジェクトを用意してレイアウトの振る舞いをとことん追求してみるのも重要なこと。検証の成果があとに残るからな。
0156デフォルトの名無しさん
2011/07/08(金) 20:26:42.77なんか震災直後にも見たな
0157デフォルトの名無しさん
2011/07/08(金) 20:50:35.22ものによっては面倒だけどねえ
LayoutParamsのキャストとか
0158デフォルトの名無しさん
2011/07/08(金) 22:58:46.50サイクルコンピュータもどきを作っているんだけど、色んなステータスを
1画面でカッコ良く表示したいと思ってレイアウトに凝ったら収拾つかなく…orz
縦横とか端末の画面サイズとか考えると面倒だなぁ〜w
やっぱ、プログラムからレイアウトしちゃうか・・・
0159デフォルトの名無しさん
2011/07/08(金) 23:16:56.69凝ったレイアウトにするんだったら逆にXMLの方が楽だと思うけど…
ある程度のViewの塊を一つのXMLに定義して
メインの画面でIncludeするようにするとすっきりする
0160デフォルトの名無しさん
2011/07/09(土) 00:05:15.12レイアウト分割してる?
LayoutInflaterとかxmlのincludeタグとか使うと色々省力化できるぞ。
大抵のデザインはLinearLayout、RelativeLayout、LayoutInflater、includeの組み合わせとjavaからの微調整で何とかなると思う。
全体の大まかな雛型と個別パーツをしっかり分割すれば変更も容易になる。
0161デフォルトの名無しさん
2011/07/09(土) 00:35:44.88LinearLayoutをネストごちゃごちゃやらなくていいようになる
0162デフォルトの名無しさん
2011/07/09(土) 01:50:07.63サンクス。まだ修行が足らないようだw
xmlの勉強をまだやらないとダメみたいです・・・orz
とりあえず、テキスト表示でみている限りはプログラムは完ぺき
あとは、表示だけだ・・・ガンバレ俺!
0163デフォルトの名無しさん
2011/07/09(土) 03:22:01.00eclipseのあれは確認用だし
でもよくあるHTMLエディタみたいにゴミタグ大量混入だけは勘弁な
直すのめんどいw
0164デフォルトの名無しさん
2011/07/09(土) 04:11:35.66じゃあ何使ってるの?
0165デフォルトの名無しさん
2011/07/09(土) 06:59:45.97画面Aからボタン1を押したときに画面Bに移り、
画面Bでボタン2を押したときに、スレッドが動き、スレッド内で
計算した数値を画面Bに表示させます。
この状態で、画面Bからもとの画面Aに戻ったとき(バックボタン)に
スレッドを動いたままにしたく、画面Aから再度
ボタン1を押したときに、動いているスレッドから数値を受信して
画面Bに戻ったときに最初と同様に数値を表示させたいのですが
どのように実装したらよいでしょうか。
画面Bから画面Aに戻るときに、画面BのActivityをDestroyさせず、
かつ画面Aの元のActivityを表示させたいです(新規にActivityを呼ぶのではなくて)
0166デフォルトの名無しさん
2011/07/09(土) 07:37:25.42Service で計算するなりすればいい
少なくとも最後の2行のような実装にすべきじゃない
0167デフォルトの名無しさん
2011/07/09(土) 08:52:05.97166も言ってるように最後の2行の処理はやってはダメ。
HandlerThreadをつくっておいて、そこから実際に処理するスレッドを起動させる。
BはonResumeでHandlerThreadに自分のHandlerを渡す。onPauseでそのHandlerを解除する。
HandlerThreadは、起動したスレッド処理の終了を検知したらBが登録したHandlerがあればそこに通知。
Bは渡したHandlerからの通知で結果を表示。
またonResume時にスレッドの処理結果が出てればそれを表示しておく。
くらいにしないとちゃんと表示できないと思われ。
0168デフォルトの名無しさん
2011/07/09(土) 11:07:04.39eclipseだよ、xml直接いじってる
無くてもいいんだろうけど、上のやりとり見てて、あると取っつきやすくなるのかな?とか思っただけ
他のosの開発環境見てるとパーツぽんぽん置いてドラッグとかして調整なんて半ば当り前になってるし
0169デフォルトの名無しさん
2011/07/09(土) 11:48:51.04appinvatorがもっとつかえればいいんだが
0170デフォルトの名無しさん
2011/07/09(土) 12:41:42.29アホしかいないんだな
0171デフォルトの名無しさん
2011/07/09(土) 13:23:39.95有料にして稼ぐのと広告で稼ぐのとどっちがいいでしょうか。
できれば 170氏に答えてほしいな ☆ミ
0172デフォルトの名無しさん
2011/07/09(土) 13:51:46.28広告なんて踏むやつおらん
0173デフォルトの名無しさん
2011/07/09(土) 14:21:28.60AngryBirdは広告だけで月数千万稼いでるみたいですけどどう思いますか?
0174デフォルトの名無しさん
2011/07/09(土) 15:54:34.670175デフォルトの名無しさん
2011/07/09(土) 16:37:11.28[a]描画される画像等の比率が変わっても画面内に描画するもの自体は同じにする
[b]描画比率はそのままで、余った部分に黒帯などを付加させる
[c]描画比率はそのままで、余った部分は表示範囲を広げる
これらのどれが無難なのでしょうか。
極端に比率が違う(1:1とか超ロングスクリーンとか?)場合はあれですが
タッチの当たり判定を考えれば[a]が良いのではないかと思いました。
色々アプリを試していますが、[b]の黒帯に気付いたことがないので
ほとんど[a]か[c]の対応?
これらで実はこんな問題があるよ〜といった情報もあればお伺いしたいです。
0176デフォルトの名無しさん
2011/07/09(土) 17:39:10.410177デフォルトの名無しさん
2011/07/09(土) 17:45:22.080178デフォルトの名無しさん
2011/07/09(土) 17:51:58.350179デフォルトの名無しさん
2011/07/09(土) 18:15:01.35ゲームとかだと[b]もあるね比率変えるとゲームにならないものもあるし
0180デフォルトの名無しさん
2011/07/09(土) 19:37:36.06有料でも返品猶予があるから放っておけレベルか。
0181デフォルトの名無しさん
2011/07/09(土) 20:01:36.61AngryBirdsのAndroidの場合、700万DLで月額8000万を稼いだらしい。
1ユーザによる広告で月11円。
1万DLの小ヒット作品で同じ程度のアガリだとすると11万/月。100円で売ると70万か。
月2000DLづつ単純に増加するとしたら100円で14万/月、
広告だと2.2万→4.4万→6.6万→8.8万→11万
ゲームのような瞬発力のあるアプリだと売り切りが良さそうだけど、
AngryBirdsのようなパズルとか、息の長いアプリだと広告の方がいいかもしれないなぁ。
あと広告もクリック型とインプレッション型による違い、露出タイミング、利用時間その他で
色々変化する訳か。難しいんだな。
0182デフォルトの名無しさん
2011/07/09(土) 21:36:53.850183デフォルトの名無しさん
2011/07/09(土) 21:41:23.370184デフォルトの名無しさん
2011/07/09(土) 22:03:22.990185デフォルトの名無しさん
2011/07/09(土) 22:18:53.160186デフォルトの名無しさん
2011/07/09(土) 23:02:32.940187デフォルトの名無しさん
2011/07/10(日) 00:31:34.61参考になる書籍などありまですでしょうか?
0188デフォルトの名無しさん
2011/07/10(日) 00:36:53.19> みなさんxmlはどうやって勉強しましたか?
トライ&エラー
0189デフォルトの名無しさん
2011/07/10(日) 00:54:10.94TabActivityのクラス自体が間違っている可能性もあるためどっちが問題なのか・・
ボタンを押したら
Intent intent = new Intent(getApplicationContext(), child.class);
Window childActivity = getLocalActivityManager().startActivity("child",intent);
を実行するのですがstartActivityでエラーが出て落ちているようです。
0190デフォルトの名無しさん
2011/07/10(日) 00:57:30.42XMLそのものはウェブにある規格情報とか入門とか。
AndroidのXMLは http://developer.android.com/ とか。
初心者は、初心者にも関わらず複数のことをいっぺんに覚えようとしてるな。
JavaとAndroidとかAndroidとXMLとか。
同時進行でもいいから別々に学ぶべきだと思うぞ。
0191デフォルトの名無しさん
2011/07/10(日) 01:04:57.11エスパーするとchild.classがManifestに登録されてない。
0192デフォルトの名無しさん
2011/07/10(日) 01:10:03.34携帯だから個別のアプリからスクリーンショット撮れちゃうのはセキュリティー的にまずい
ハードキーの組み合わせでユーザの操作でのみ撮れる端末はある
0194デフォルトの名無しさん
2011/07/10(日) 09:14:22.63俺馬鹿だからよくわからんのだけど
アプリ側の制御でキャプチャ撮れると何か悪いこと出来ちゃうの?
0195デフォルトの名無しさん
2011/07/10(日) 09:30:17.51お前が今使ってるPCのデスクトップのキャプチャをネットにさらすウイルス出回ってたが
別に困らないよな?
0196デフォルトの名無しさん
2011/07/10(日) 09:32:59.55あーなるほどね。
じゃあ、間単にキャプチャできるあいぽんはやばいってこと?
0197デフォルトの名無しさん
2011/07/10(日) 12:22:01.40iPhoneもハードキーによる操作でしか撮れない
0198デフォルトの名無しさん
2011/07/10(日) 12:49:36.59表示するデータは通信でとってくるから、
取得までの待ち時間は、ListFragment側にお任せしてある。
よくわからんのだけど、ListFragmentにAdapterをセットしないと、
画面中央にProgressBar(だっけ?)が表示されて、ずっとくるくる回ってくれてる。
で、同じことをAndroid2.2に(互換ライブラリだったか使って)移植したら、
取得までの待ち時間に、画面がなぜか真っ黒のまま。
何か処理間違えたのか、互換ライブラリの仕様なのか、
誰か詳しい人いたら教えてくださいませんか。
0199デフォルトの名無しさん
2011/07/10(日) 12:58:30.910200デフォルトの名無しさん
2011/07/10(日) 14:13:13.14いちいち移しながらインストールしてるんだけど
やりすぎてUSBカードの認識エラーがでるようになったから
仕方ないんでドロップボックス使ってウェブ経由で送るように
したんだけど、他になんかいい方法ない?
0201デフォルトの名無しさん
2011/07/10(日) 14:14:03.28×USBカード
○SDカード
0202デフォルトの名無しさん
2011/07/10(日) 14:23:18.79adapterセットすれば同じなんだったら大した問題じゃなくね?
0203デフォルトの名無しさん
2011/07/10(日) 16:04:01.57互換ライブラリで作ったものを3.0で動かしてみそ
0204デフォルトの名無しさん
2011/07/10(日) 17:42:04.61ftp,web,samba鯖立てるとか?
opera使いならopera unite手軽でいいかも
0205デフォルトの名無しさん
2011/07/10(日) 17:51:23.60えっ?
単純にeclipseでrunとかdebugでインストール+実行ができるけど。
リリース版だとしてもadb pushでいけるよね。
少なくともSDカード経由はしない。
0206デフォルトの名無しさん
2011/07/10(日) 22:09:54.89Android公式のどこかに
「我々は3.0と同じにするために努力している」
とか書いてあった。
ならば仕様は同じなのが普通だとおもふ。
>>202
Adapterセットするまで画面真っ暗なので、
通信に時間がかかると「あれ、フリーズした?」となること請け合い。
>>203
なるほど、試してみる。
0207デフォルトの名無しさん
2011/07/10(日) 22:36:26.43GLSurfaceView.Rendererなどで毎フレーム処理するようなアプリじゃないのでタイマーでいいかなと思っているのですが、
タイマーが別スレッドだと参照しているアドレスがボタンを押すことで変化や削除されたという場合に
不正アクセスで止まりそうな気がしました。
タイマーもメインスレッド上の処理であれば気にする必要な無いのですが・・
0208デフォルトの名無しさん
2011/07/10(日) 22:46:31.840209デフォルトの名無しさん
2011/07/10(日) 23:24:43.55Fragmentはまだ学習してないんで適当だが、
普通adapterはデータがなくてもsetするもんじゃないか?
cursorAdapterもcursorをnullにして最初渡すのが普通だと思ってたが。
0210デフォルトの名無しさん
2011/07/10(日) 23:46:01.54それをやってたけど出来なくなったって話じゃ?
0211デフォルトの名無しさん
2011/07/11(月) 00:13:58.58あれ、そうなん?
こちらは、取得したデータが0件なら、それは0件というデータとして扱う、というスタンスで
「データを取得してからアダプタをセット」で貫いてたんだが。
ってかデータが0件なアダプタ渡したら、先にEmptyViewが表示されるし。
って、CursorがnullのCursorAdapter渡したら、何が表示されるん?
ぬるぽとか発生しそうだったので試したこと無いわ。
そういやListActivityのときはアダプタ渡さなくてもEmptyViewが表示されていた気がする。
何かいろいろ違う。
0212デフォルトの名無しさん
2011/07/11(月) 02:20:13.96アダプタってデータとは切り離されたモノだという認識。
cursorAdapterにnullを渡すってのはちょっと言い過ぎたかも。
>って、CursorがnullのCursorAdapter渡したら、何が表示されるん?
素直にemptyが出てくる。
でもデータ読み込み中なら、emptyViewに「読込中」とか表示すればいいだけだし。
自分もデータをクラウド側から取得するlistview作ってるけど、
読み込むごとに動的にリストが更新されていくってのもなかなか乙な感じ。
0213デフォルトの名無しさん
2011/07/11(月) 08:50:30.09前プロジェクトを流用したいのですが、
そのままプロジェクトファイル名と、アプリ名を変更しただけでは
同一アプリとして認識されてしまうのか、デバッグモードで実機に送った際に
上書きインストールになってしまいます。
別アプリとして認識させるにはどこを変えればいいのでしょうか?
0214デフォルトの名無しさん
2011/07/11(月) 08:56:24.19パッケージ名
0215デフォルトの名無しさん
2011/07/11(月) 09:13:22.87ありです。javaの問題でしたか
リファクタリングでパッケージ名の最後に.secondを追加して
importで使ってる部分に.second追加して、AndroidManifestにも追加して
リフレッシュ→クリーンアップ→再起動してやったー\(^o^)/
インストールはされるようになったけど、予期せず停止しますたって表示されるようになって
まともに動かないorz
別プロジェクト作って、1つ1つクラスをインポートすべきだったかな・・
0216デフォルトの名無しさん
2011/07/11(月) 09:14:33.14たとえば、ある速さ以上の速度で移動しないようにするとか、フリックするとタップするまで低速でずっと動くようにするとかです。
0217デフォルトの名無しさん
2011/07/11(月) 09:22:50.93勝手に変更した奴が追加されてたorz
お騒がせしました、有難う御座いました
0218デフォルトの名無しさん
2011/07/11(月) 09:26:29.12できるよ
面倒だけど
0219デフォルトの名無しさん
2011/07/11(月) 11:07:20.31startManagingCursor/stopManagingCursor がなんか関係していないか?
0220デフォルトの名無しさん
2011/07/11(月) 11:26:23.70やり方教えてもらえませんか!オナシャス!
0221デフォルトの名無しさん
2011/07/11(月) 14:25:55.36いや、パッケージ名ってのはJavaの話じゃなくてManifestファイルの事だろ。
<manifest 〜 package="これ" 〜>
確かにJavaのパッケージ名に普通は一致してるけど。
0222デフォルトの名無しさん
2011/07/11(月) 14:30:53.89あとリファクタリングで落ちるようになるのは普通の話。
・manifestファイルのactivityを更新してない
・layoutの独自widgetが更新されてない
・eclipseのリファクタのバグでmanifestファイルが壊れる
これくらいは普通にある。
0223デフォルトの名無しさん
2011/07/11(月) 14:31:39.57Σ(・ω・`)
いやまぁ…プロジェクト毎にjavaパッケ変えるもんなのか?って思ったけど
Manifestだけでおkだったのか…有難う
なんか心配だな。
<activity android:name=".hogeActivity" 〜>
とかって書いてあると packageはmanifestで指定されているものになる。当たり前だけど。
だから <activity android:name="jp.co.nantara.app.hogeActivity" 〜>
と書かなきゃダメよ。
とかいっぱい気にしなきゃダメなとこあるんで。
0225デフォルトの名無しさん
2011/07/11(月) 14:58:17.48でも、見た目が変わらんのだけど、何かリロードとかリフレッシュみたいな動作が必要なの?
それともただjavascriptが不発に終わってるだけ?
0226デフォルトの名無しさん
2011/07/11(月) 15:06:16.540227デフォルトの名無しさん
2011/07/11(月) 15:28:09.33一応動きました(最もリファクタリングした後のでなので、javaの方も変わっています、動かなかったのはクラスパスのとこが変に変更されていたいました)
つまりjavaファイル内は
package jp.untara.android.untara;を固定として
AndroidManifestを
package = "jp.unun.android.nantara"に変更して
<activity android:name = "jp.unun.android.nantara.hogeActivity" 〜>
に変更ということでしょうか?
activity andorid:nameは .hogeActivityって感じに指定してるので前者になってます。
0228デフォルトの名無しさん
2011/07/11(月) 16:18:30.98自動ログイン部分はローカルに設定値(id、pass)の入ったhtmlファイルを設置してあり、webViewで開くと自動ログインし、通常のPC版の画面が開く。
このと、JavaScriptのinnerHTMLみたいにして表示されているHTMLデータの見た目をスマフォ用に変更(置換)したいのですが、何か良い方法がありますでしょうか?
今考えているのは、Javaでログイン後のhtmlデータを取得して、
そのhtmlソースをStringで取得して、ひたすらシコシコ置換して(スマフォ用に)整形し、
最後にhtmlファイルとしてローカルに保存し、そのhtmlファイルをWebViewで開くと言うものですが、
こんな面倒な事しないとダメなんでしょうか?
もっとスマートな方法があれば是非、ご教示願います。
0229デフォルトの名無しさん
2011/07/11(月) 16:23:01.40ここのところ暇だから雇ってくれるなら助けようか。
0231デフォルトの名無しさん
2011/07/11(月) 17:27:03.710232デフォルトの名無しさん
2011/07/11(月) 17:34:08.710234デフォルトの名無しさん
2011/07/11(月) 17:43:29.13残念でしたねーw プッ
0235デフォルトの名無しさん
2011/07/11(月) 18:26:28.54どの工程がどんな風に面倒くさいと思ってるのかよくわからんが(どんな方法をとるにせよ元htmlのパースと新UIの構築は自力なわけで)、
WebView#loadDataに生成したhtmlを流し込むとか、scriptタグを流し込んでjsだけでui生成させるとかで対応できない?
あと、addJavascriptInterfaceとか。
0236デフォルトの名無しさん
2011/07/11(月) 18:36:31.60DatePickerDialogと同じ機能で
設定の時間設定画面のような数字リストをスクロール選択させたいのですが
そういったのは標準で用意されているのでしょうか?
標準でないなら実現するにはどのようにすればいいのか教えていただければ幸いです。
以上よろしくお願いします。
0237デフォルトの名無しさん
2011/07/11(月) 18:59:11.87じゃ、素直にWebサービス側を直せよ。
自分のサイトじゃないなら諦めて適当にスクレイピングすりゃいいじゃん。
0238デフォルトの名無しさん
2011/07/11(月) 19:08:53.01TimePickerDialogじゃなくて?
0239デフォルトの名無しさん
2011/07/11(月) 19:10:13.19エクリプスでエラーもないし
停止しましたっていわれてもねえ
0240デフォルトの名無しさん
2011/07/11(月) 19:20:12.36ステータスバーに表示されるレイアウトについてなのですが、
時間(when)を表示しないようにするには、
カスタムレイアウトにしないとだめでしょうか?
0241デフォルトの名無しさん
2011/07/11(月) 19:29:27.05javaだけで動くわけじゃねえし
動かないものを晒してる俺みたいな奴もいるし
ログ見れ
0242デフォルトの名無しさん
2011/07/11(月) 20:16:39.80時間を設定しなければおK
0243デフォルトの名無しさん
2011/07/11(月) 21:13:01.39設定はしていないのですが、通知した時刻が勝手に入ってしまうみたいです。
なにか設定が必要だと思ったのですが機種依存だったりするのですかね?
エミュレータとGalaxySは勝手に入っちゃいます。
0244デフォルトの名無しさん
2011/07/11(月) 21:38:43.18MODE_PRIVATEで書き出したファイルは再生できませんでした。
データを直接公開したくないのでアクセス権を変更せずに再生したいんですが、
いい方法はないものでしょうか。
0245デフォルトの名無しさん
2011/07/11(月) 21:45:10.48public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
handleIntent(getIntent());
Bundle appData = getIntent().getBundleExtra(SearchManager.APP_DATA);
if (appData != null) {
boolean jargon = appData.getBoolean(SearchManagerActivity.JARGON);
}
}
JARGONでエラーになるんですがなんですかこれ
0246デフォルトの名無しさん
2011/07/11(月) 22:29:14.23つか、どこのサンプルだよ?
SearchManagerActivityなんてgoogleさんに聞いても出てこない。
0247デフォルトの名無しさん
2011/07/11(月) 23:29:18.37気合
>>243
0指定
>>244
ParcelFileDiscripter?
0248デフォルトの名無しさん
2011/07/11(月) 23:44:05.73できました。ありがとうございます。
この発想はなかったです。
0249デフォルトの名無しさん
2011/07/12(火) 00:52:24.46タッチイベントの値をSurfaceViewに反映したいのですが
サンプルとかみてもmainとSurfaceViewクラスというように別れていて
どこでデータを渡してるのかわかりません
0250デフォルトの名無しさん
2011/07/12(火) 01:23:11.51SurfaceViewでタッチイベント発生すると思うんだけど…
他のViewで発生したタッチイベントをSurfaceViewに渡したいって話だったら
そもそも使い方間違ってるから考え直せ
0251デフォルトの名無しさん
2011/07/12(火) 01:30:43.65SurfaceViewのサンプルで
public class SurfaceViewView extends SurfaceView
implements SurfaceHolder.Callback,Runnable {
・・・・
ていうのがあるんですけど
この中にタッチイベントのサンプルで
public class TouchView extends View {
private HashMap<String,PointF> points=new HashMap<String,PointF>();
・・・・
をいれるのですか?
とりあえずエラーになります・・
0252デフォルトの名無しさん
2011/07/12(火) 01:47:45.02SurfaceViewはViewのサブクラスだから
Viewで発生するイベントはすべて発生する
全体のソースが無いからなんともいえないけど、
TouchViewでpointsに値設定しているメソッドは
SurfaceViewViewでも呼ばれる
コードをコピーするんじゃなくて、内容を理解しないと後々つらいぞ
■ このスレッドは過去ログ倉庫に格納されています