Androidプログラミング初心者質問スレ Part4
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2010/11/19(金) 16:33:21Androidプログラミング初心者質問スレ Part3
http://hibari.2ch.net/test/read.cgi/tech/1286357268/
Androidプログラミング初心者質問スレ Pert2
http://hibari.2ch.net/test/read.cgi/tech/1282716370/
Androidプログラミング初心者質問スレ
http://hibari.2ch.net/test/read.cgi/tech/1278560954/
関連スレ
【Google】Androidアプリ作成part6
http://hibari.2ch.net/test/read.cgi/tech/1286555951/
0382デフォルトの名無しさん
2010/12/08(水) 00:07:12わざわざqueryしたやつをセットするのではなく、insertするデータを(queryと同時か前に)spinnerのアダプタにセットすれば?
あとセットしているのはUIスレッドかな?
また、想像するにマルチスレッド処理が要求されるだろうからstatic変数か何かに状態や途中のデータを退避しているとかないよね?
0383デフォルトの名無しさん
2010/12/08(水) 00:09:41すまん、ソースみてなかった。
前言撤回。
どんなエラーがでるの?
0384375
2010/12/08(水) 00:21:47すみません、自己解決しました。
エラーの原因はonCreate()の外でSQLiteDatabaseとかを宣言していたためのようでした。
void setSpinner(Spinner spinner, String[] arr)
としてonCreateと共にDBからデータ取得してSpinnerを作成
その後、insertしたらまたDBからデータ取得してarrを更新
そしてsetSpinnerしたら問題解決しました。
ご迷惑かけてすみません。
また困ったときにお願いします。
0385デフォルトの名無しさん
2010/12/08(水) 00:50:33解決して何よりです。
ってか、既に初心者レベルじゃないんじゃなイカ。
0386デフォルトの名無しさん
2010/12/08(水) 04:34:120387デフォルトの名無しさん
2010/12/08(水) 04:38:290388デフォルトの名無しさん
2010/12/08(水) 07:29:54こんにちわ世界が表示されません。お前ら教えろ。
というのが、俺の中での初心者レベル。
0389デフォルトの名無しさん
2010/12/08(水) 10:25:27さすがにそれは、エスパーか全力行けって言いたくなるw
0390デフォルトの名無しさん
2010/12/08(水) 13:03:55view差し替え思いつかない奴に勧めても戻るボタンで思い通りにならなくて発狂する気がするんだ
パフォーマンス比べたところとか無いのかな〜
viewの方が速い気がするな〜
でもカスタマイズする時にめんどくさそう〜
何事もいい塩梅での切り分けですかな
0391デフォルトの名無しさん
2010/12/08(水) 14:43:56なにか注意点ありますでしょうか?
0392デフォルトの名無しさん
2010/12/08(水) 15:02:19それともtoolsの置き換えで失敗して進まないから
強引に自分でtempにあったzip解凍して差し替えたのが原因なのか
なにが原因だったかわからないけどレイアウトエディタが起動しなくなった
せっかくだからついでにHeliosで環境構築し直した
0393デフォルトの名無しさん
2010/12/08(水) 15:10:57Heriosでのバグ治ったの?(stringでエラーでるとかの件)
0394デフォルトの名無しさん
2010/12/08(水) 15:13:47ランチャーで選択するとき邪魔なんですけど
消す方法ってAVDを作り直すしかないんですか?
0395デフォルトの名無しさん
2010/12/08(水) 15:25:050396デフォルトの名無しさん
2010/12/08(水) 15:29:26AVDの作り方がよくわかりません。
画面をはみ出すほどに大きくなったり、文字が見えないほど小さくなったり、(擬似)キーボードが付いたり付かなかったり・・・。
どこかに情報がありましたら、ご紹介いただけないでしょうか?
特に
(1)画面の大きさの調整の仕方
(2)Skinで「ビルトイン」から選択すると表示されるボタンとキーボードを、「解決」で任意の解像度を指定しても表示させる方法
の二点について掲載されているものがありましたら、是非ご紹介をお願いします。
0397デフォルトの名無しさん
2010/12/08(水) 15:44:000398デフォルトの名無しさん
2010/12/08(水) 15:50:49自分でスキン作れ
既存のやつをコピって適当に書き換えればできる
0399デフォルトの名無しさん
2010/12/08(水) 15:58:370400391
2010/12/08(水) 16:07:270401デフォルトの名無しさん
2010/12/08(水) 16:09:41うまくいかないのは3.5に入れてる人?
0402デフォルトの名無しさん
2010/12/08(水) 17:59:23ただ依存関係の問題でアップデートが一回で終わらんかった。
一回アップデートしただけだと元々のtoolsが消えて新しいplatform-toolsが入ってない状態になるからそこで勘違いしてるんじゃないか?
0403デフォルトの名無しさん
2010/12/08(水) 18:23:28ExpandableListのメニューの中のアイテムをタッチするとダイアログを表示されます
ダイアログ内はEditTextとButtonです
ボタンを押すとEditText内のintを読み込み処理したいんですが
ボタンを押すと「このアプリケーションは突然止まりました」のエラーが出てしまいます
いろいろ試したんですが void onClick() 内の
int i = Integer.parseInt(edit.getText().toString());
をコメントアウトして例えばi=10 などとすればうまくいきます
R.layout.dialog_insert内に問題のEditTextとButtonを定義してます
onCreate内ではsetContentViewしてません
問題点が全く分からないのでよろしくお願いします。
public class SelectItem extends ExpandableListActivity {
private EditText edit;
protected void onCreate(Bundle savedInstanceState) {
ExpandableListを作成
}
/* リストのアイテムをタッチすると呼び出されるメソッド */
public boolean onChildClick(...){
final Dialog dialog = new Dialog(this);
dialog.setContentView(R.layout.dialog_insert);
edit = (EditText) findViewById(R.id....);
dialog.findViewById(R.id.button).setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
int i = Integer.parseInt(edit.getText().toString());
dialog.dismiss();
}
});
略
0404デフォルトの名無しさん
2010/12/08(水) 18:35:44例えば空文字列 "" は数値じゃないので NumberFormatException が出る
ログを見れば例外のスタックトレースが出力されているはず
0406403
2010/12/08(水) 18:41:03android:numeric="integer"
として登録してあるので数値しか入力できないはずですし
テストでも数値しかつかってません。
0407デフォルトの名無しさん
2010/12/08(水) 18:44:120408デフォルトの名無しさん
2010/12/08(水) 20:39:13そうじゃないんですねorz
それくらい出来るようにして>google
0409デフォルトの名無しさん
2010/12/08(水) 21:14:590410デフォルトの名無しさん
2010/12/08(水) 22:03:240411デフォルトの名無しさん
2010/12/08(水) 22:25:17editぬるぽだよ。
findViewById がどこから取っているかよく見てみ。
根本的には、dialogをfinalにしてワンライナーてはなくちゃんとロジックを組み上げることかな。
0412デフォルトの名無しさん
2010/12/08(水) 22:28:14ごめん、dialogはfinalだったね。
0413403
2010/12/08(水) 23:27:11ありがとうございます。
ぬるぽのようでした。
dialog.findViewById()
で解決しました。
ありがとうございます。
0414デフォルトの名無しさん
2010/12/08(水) 23:28:22デバッガで例外はわかるけど場所がわからない場合は
実行>Java例外ブレークポイントを追加
↑これに気づくまで、どうやって場所調べるんだよと思ってた
0415デフォルトの名無しさん
2010/12/09(木) 00:48:07> android:numeric="integer"
それで良かったっけ?
数字のみなら確か…
android:numeric="0123456789" だったかと。。
0416デフォルトの名無しさん
2010/12/09(木) 01:24:100417デフォルトの名無しさん
2010/12/09(木) 01:57:13ぬるぽも対処出来ないなんて、バカじゃねーのって…久し振りに思った
0418デフォルトの名無しさん
2010/12/09(木) 02:01:30>>413
>>417
galtu
0419デフォルトの名無しさん
2010/12/09(木) 02:12:110420デフォルトの名無しさん
2010/12/09(木) 02:27:10俺にはできない
0421デフォルトの名無しさん
2010/12/09(木) 08:49:26setContentViewなどのアプリの初期化作業を行っているのですが、
画面の方向が変わるとonCreateが発生してしまい、
方向を変えるたびに初期化されてしまいます。
方向を変えてもそのままの状態にするにはどうすればいいのでしょうか?
0422デフォルトの名無しさん
2010/12/09(木) 09:07:30onCreateの最初でそのフラグを見て初期化作業するかどうかを
決めればいいんじゃね?
0423デフォルトの名無しさん
2010/12/09(木) 10:45:02正しい方法:
onSaveInstanceState で状態を Bundle に保存し、onCreate か onRestoreInstanceState に渡される Bundle から状態を復元する
手抜きな方法:
<activitiy> に android:configChanges="orientation" を付ける
0424デフォルトの名無しさん
2010/12/09(木) 10:52:290425デフォルトの名無しさん
2010/12/09(木) 11:05:42//main画面から遷移
public class TestPlay extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//アクティビティが生成されると同時にタイマー開始
Thread thread = new Thread() {
@Override
public void run() {
try {
//制限時間12秒として設定
//int count = 12;
while(count > 0){
Thread.sleep(1000);
count--;
//メイン画面へ遷移。
finish();
} catch (InterruptedException e) {
}
}
};
thread.start();
上記のソースコードに、どのようなコードを追記すれば解決するでしょうか
ご教授お願い致します。
0426デフォルトの名無しさん
2010/12/09(木) 11:21:10orientation受信するのは別に手抜きじゃないと思う
0427デフォルトの名無しさん
2010/12/09(木) 11:23:27ttp://www.techdoctranslator.com/resources/articles/articles-index/painless-threading
0428デフォルトの名無しさん
2010/12/09(木) 11:27:19コードを追記するよりも、ALERMを使うコードに書き換えた方がいいかも…
0429デフォルトの名無しさん
2010/12/09(木) 11:49:59できました。ありがとうございます。
0430デフォルトの名無しさん
2010/12/09(木) 12:07:14まずはレイアウトを作ってカウントダウンを表示するためのTextViewを置くんだ
0431デフォルトの名無しさん
2010/12/09(木) 15:12:50C#の、#region #endregion みたいな事がしたいんですが。
0432デフォルトの名無しさん
2010/12/09(木) 19:16:39Orientation 以外にもActivityが再起動されることはあるので
根本的な解決にはなってない
0433デフォルトの名無しさん
2010/12/09(木) 21:02:14Androidから数値や文章をPHPに渡す
PHPは受け取った値を使ってDBを操作する
操作した結果をAndroidに返す
PHPへ送る処理は分かったのですが、PHPからAndroidへ返す方法が分かりません。
参考になるようなサイトやソースがあればお教えください。
0434デフォルトの名無しさん
2010/12/09(木) 21:14:30printやechoでおk
0435デフォルトの名無しさん
2010/12/09(木) 21:28:19print $a;
みたいな書き方で返すことになるんですね。ありがとございます。
数日間、ずっと悩んでた自分が馬鹿みたいです。
0436デフォルトの名無しさん
2010/12/09(木) 21:51:54(早い話がオープンベータ的な?)
そこで,Debugクラスを作ってLogを出力しながら,Web上のPHPに情報をPOSTさせることにしました.
POST前にユーザに送信内容を確認させたくて,AlertDialogを表示しようとしましたが,Activityで無いため,AlertDialogインスタンス生成時にぬるぽが発生します.
何かAlertDialogを表示させる方法は有るでしょうか?
アドバイスをお願いします.
一応Debugクラスを晒します.
http://www.cms-e.net/tmp/Debug.txt
0437デフォルトの名無しさん
2010/12/09(木) 21:57:12どっかからContext渡せば?
0438デフォルトの名無しさん
2010/12/09(木) 22:03:30実際に描写される画面でActivityを継承したDrawActivity
DrawActivityで
setContentView()を使いDrawViewをセットしてますが
横にスクロールさせたいのでHorizontalScrollViewもセットしたいです。
が、どうやって2つのViewをセットしていいか分かりません。
とりあえず
LinearLayout ll = new LinearLayout(this);
scrollView = new HorizontalScrollView(this);
drawView = new DrawView(this);
ll.addView(scrollView);
ll.addView(drawGraphView);
setContentView(ll);
としてみたんですが、うまくいきません。
どうやればいいんでしょうか?
お願いします
0439438
2010/12/09(木) 22:06:12ll.addView(drawView); でした。
0440デフォルトの名無しさん
2010/12/09(木) 22:09:15scrollViewにdrawViewを追加してみたら?
後はLayoutParamsもちゃんと設定
0441デフォルトの名無しさん
2010/12/09(木) 22:18:31できました.
たったそれだけでできるんですね…orz
今日丸一日悩んでました….ホント感謝です.
0442デフォルトの名無しさん
2010/12/09(木) 23:10:00onCreate()で設定してonResume()で描写してるんですが
ll.addView(scrollView, new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.FILL_PARENT,
LinearLayout.LayoutParams.FILL_PARENT))
のようにscrollViewとdrawViewを設定してみたんですが描写されず
scrollView.addView(drawGraphView, new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.FILL_PARENT,
LinearLayout.LayoutParams.FILL_PARENT));
setContentView(scrollView);
のようにscrollViewにdrawViewを追加しても描写されませんでした。
当たり前ですがsetContentView(drawView)だけだと描写はされます。
0443436
2010/12/09(木) 23:45:57追加の質問をお願いしたいのですが,436のデバッグクラス中のsendDebugInfoメソッドで,R.string.〜でリソースの文字列にアクセスできません.
R.string.〜でintは取れるみたいですが,getString(R.string.〜)とすると,ぬるぽになってしまいます.
何か心当たりがありましたら,ご教授いただければと思います.
0444436
2010/12/10(金) 00:03:05getStringにも呼び出し元のcontextを指定する必要が有ったのですね.
context.getString(リソースID)で正常にリソースにアクセスできました.
お騒がせしました.
0445デフォルトの名無しさん
2010/12/10(金) 00:07:550446デフォルトの名無しさん
2010/12/10(金) 00:14:210447デフォルトの名無しさん
2010/12/10(金) 00:26:09とりあえずActivityを継承するのは止めるべき
0448デフォルトの名無しさん
2010/12/10(金) 00:57:17助言ありがとうございます.
Activityの継承を削除しました.
0449デフォルトの名無しさん
2010/12/10(金) 20:36:25やったことがよく分かんないけど、まずはxmlでレイアウト作ってsetContentViewで希望の動きするか確かめてみれば。
Viewの参照をメンバー変数として保持したいのならfindViewById で保持すりゃいいし。
0450デフォルトの名無しさん
2010/12/10(金) 20:37:05やったことがよく分かんないけど、まずはxmlでレイアウト作ってsetContentViewで希望の動きするか確かめてみれば。
Viewの参照をメンバー変数として保持したいのならfindViewById で保持すりゃいいし。
0451デフォルトの名無しさん
2010/12/10(金) 22:30:070452デフォルトの名無しさん
2010/12/10(金) 22:34:32オレオレw スレ汚しすまん
0453デフォルトの名無しさん
2010/12/11(土) 01:15:541. androidでクエリ送信、検索結果を受信、スクレイピングまで全部やる
処理の重さが心配。
スクレイピングしにくそう。
2. androidでクエリ送信、結果受信。結果のhtmlをphpへpost、スクレイピング後のxmlを受信。
phpならスクレイピング処理簡単。
結果のhtmlをpostしたけど、途中で途切れて、全部送れない。
通信時間がネック
3. androidは中継サーバへクエリ送信、サーバのphpがログイン、結果受信、そのままxml化してandroidへ返却
今日一日挑戦したけど、結局ログインできず。authflagが0で返ってくる
原宿でまた仕様変わった?
何かいい案があったら教えてください....
0454デフォルトの名無しさん
2010/12/11(土) 01:54:400455デフォルトの名無しさん
2010/12/11(土) 02:31:33スク水×レイプ
0456デフォルトの名無しさん
2010/12/11(土) 04:35:12俺だったら。1を目指すな。
結局正規表現的なことをするわけだし。2と3は、アプリが載る端末が移動体通信であることを考えるとどうかなと思う。中継経由はバグ発生時の対応(どこまでやるか、によるけど)も大変そうだし。
他の方法ねぇ。。。ggrのサイト内検索とかを使うこととかはできないか、さすがに。
0457デフォルトの名無しさん
2010/12/11(土) 10:57:43よろしければ、教えてください.
【目的】
画面遷移をする際に、新規生成せずにhistory stackにあるものを利用する.
「戻る」ボタンで戻る順序も崩さない.
何点か試してみたのですが・・うまくいきません.
○launchモードを「singleTask」
・インスタンスはhistory stackの物を利用できますが、
A→B→C→A
と遷移すると、B,Cのインスタンスが消滅してしまう(消したくないです).
○launchモードを「singleInstance」
・これも再利用できますが、インスタンスをpopするため、
戻る遷移がバラバラになってしまいます.
○IntentにFLAGをセットする.
Intent intent = new Intent();
intent.setFlag();
startActivity(intent);
FLAG_ACTIVITY_LAUNCHED_FROM_HISTORYや
FLAG_ACTIVITY_EXCLUDE_FROM_RECENTSなど
フラグをセットして、遷移しているはずななのですが、
どうんもフラグが反映されてない状態です.
フラグを反映するのに他に行わなきゃいけないことことはあるでしょうか。
長々と書いてしまいましたが、もしよろしければ教えてください.
0458デフォルトの名無しさん
2010/12/11(土) 12:29:52両方ともタスクルートにするやつだったと思うから、基本はアプリのルート画面に設定するやつだと思う。
bとかcは、standardで起動すべきかも。状態はonSaved何とかで保存しておいて。
リファレンス見れないから間違ってたらごめんよ。
0459458
2010/12/11(土) 12:35:220460デフォルトの名無しさん
2010/12/11(土) 13:18:00「初歩からわかるAndroid最新プログラミング」に書いてあるとうりにAndroid SDKをダウンロード、
環境変数でPATHを設定してコマンドプロントで確認したところ、
pathをいれると確認できるのですが、
fastbootをいれると
fastboot.exe - コンポーネントがみつかりません
AdbWinApi.dll が見つからなかったため、このアプリケーションを開始できませんでした。
アプリケーションをインストールし直すとこの問題は解決される場合があります。
とエラーになって確認できませんでした。
再インストールしてもエラーになってしまいます。
Android SDKを設置したディレクトリを確認すると、/tools/の中にはそのファイルは存在します。
AdbWinApi.dllでググっても情報が少なくて分からなかったです。
よろしければ対処法をおしえてください。
Windows XP SP3 Home
android sdk 2.3です。
0461デフォルトの名無しさん
2010/12/11(土) 13:43:28つ http://www.javadrive.jp/android/
0462デフォルトの名無しさん
2010/12/11(土) 13:50:57それらはplatform-toolsに移動した
0463デフォルトの名無しさん
2010/12/11(土) 14:05:40ですけど、ここやほかのサイトも調べたのですけど解決できずです。
SDK2.3を解凍した/tools/の中に AdbWinApi.dll が入ってないみたいです。
0464デフォルトの名無しさん
2010/12/11(土) 14:14:49fastbootなんかはsdkのzipになくて、AOSPをビルドしたぜ。
0465デフォルトの名無しさん
2010/12/11(土) 14:20:05platformsの中は最初から空で、toolsの中にも AdbWinApi.dll が入ってないです。
0466デフォルトの名無しさん
2010/12/11(土) 14:27:52それってPCでもできるのですか?
ググって見たら端末みたいだったので。
0467デフォルトの名無しさん
2010/12/11(土) 14:29:16AOSPのソースの中に、SDKのソースも入ってる。
0468デフォルトの名無しさん
2010/12/11(土) 14:34:27しつこく聞いてすみません。
0469デフォルトの名無しさん
2010/12/11(土) 14:35:580470デフォルトの名無しさん
2010/12/11(土) 14:40:25ありがとうございました。
0471デフォルトの名無しさん
2010/12/11(土) 14:49:280472デフォルトの名無しさん
2010/12/11(土) 15:17:370473デフォルトの名無しさん
2010/12/11(土) 15:42:39解決しました。ありがとうございました。
0474デフォルトの名無しさん
2010/12/11(土) 16:16:44俺も1だなぁ
ニコ側の仕様変更はどうしてもverupで対応する形になるだろうし
ログイン情報を中継鯖にってのも嫌がられるし、imona状態になるかもだし
ニコの中身見てないけどレスポンスをxmlとして解釈出来れば大して難しくないかと
0475デフォルトの名無しさん
2010/12/11(土) 17:40:43ありがとう、1で頑張ってみるよ。
ちなみに、検索時のログイン情報は専用のを鯖側で用意するつもりだったよ!
0476デフォルトの名無しさん
2010/12/11(土) 18:41:59http://profiles.yahoo.co.jp/-/profile/?sp=oGT3BCg1eqGiCHsyTN79KJdc
0477デフォルトの名無しさん
2010/12/11(土) 18:51:100478デフォルトの名無しさん
2010/12/11(土) 19:03:050479デフォルトの名無しさん
2010/12/11(土) 19:04:26ありがとうございます.
リファレンス見ました(時間かかりました。。)
どうも多用はしないほうがいいみたいなことが書かれてました.
バックキーの処理も必ず試して確認してくださいなどなど。。
上記の例でいう、b,cのactivityは常に動かしていたいものが
あるので保持というよりは止めたくないという感じです.
現状としては、root activityとなるものだけ
singleInstanceにしようと思います.
ちなみに、一般的なandroid開発でのメモリ管理はどのように
なっているのでしょうか。standardのactivity間で画面遷移を
繰り返すようなことがあると、無限にインスタンスが生成され
てしまうような気がしてしまいます.
明示的にスタックをクリアするなどした方がいいのでしょうか.
0480デフォルトの名無しさん
2010/12/11(土) 19:09:46OSが再利用するかどうか決めるので、そこは各Activityでの状態保存方法 とFLAGによると思う。
ずっと処理させたいのなら、Service も検討したほうがいいんでない?
0481デフォルトの名無しさん
2010/12/11(土) 19:10:14Win7はandroidoは対応していないな
■ このスレッドは過去ログ倉庫に格納されています