トップページ⇒tech
1001コメント307KB

Androidプログラミング初心者質問スレ Part4

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001デフォルトの名無しさん2010/11/19(金) 16:33:21
前スレ
Androidプログラミング初心者質問スレ 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/
0893デフォルトの名無しさん2010/12/30(木) 20:42:12
>>892
ヒント:ドラッグ
ヒント2:ドロップ
0894デフォルトの名無しさん2010/12/30(木) 20:47:50
listviewについて質問させてください。

要素クリック時(onItemClickにて)に、
現在のpositionより低い(高い)要素のviewを変更したい
のてすが、どのように他のview を取得すれば
よいか教えてください。

親であるlistviewは取得できたのですが、
そのさきでどのように取得すればよいか
分からなくなってしまいました。
0895デフォルトの名無しさん2010/12/30(木) 21:19:58
>>894
アイテム数を取得出来なかった?
その範囲でポジションを変更すればいい。
0896デフォルトの名無しさん2010/12/30(木) 21:20:17
Adapterの中身を変更してnotifyDataSetChangedを呼びます
0897デフォルトの名無しさん2010/12/30(木) 21:38:44
>885です
>>893 サンキュー

ついでに誰かddmsのあほなSDカードへのアクセスウエイトを
はずす方法を教えて
0898デフォルトの名無しさん2010/12/30(木) 21:53:00
≫895
Dtoはその範囲でとれる(getItemAtPosition )のですが、
Viewになるととれない状況です。

getChildAtで取れそうなのですが、
渡すindexが見つからず、うまくとれません。
0899デフォルトの名無しさん2010/12/30(木) 22:17:07
>>898
Viewが欲しいならadapter#getViewを呼び出しちゃえばいいんじゃね?
0900デフォルトの名無しさん2010/12/30(木) 23:04:35
>>882
自己解決
これはandroid側のバグらしい
0901デフォルトの名無しさん2010/12/30(木) 23:06:50
単純にmain.xmlとhoge.xmlを同時にonCreateで呼び出したいんですけど
setContentViewで1つか呼び出せません><
どうすればいいですか
0902デフォルトの名無しさん2010/12/30(木) 23:12:26
新しいxmlを作ってmain.xmlとhoge.xmlの両方を<include>で取り込む
0903デフォルトの名無しさん2010/12/30(木) 23:31:05
addContentView
0904デフォルトの名無しさん2010/12/30(木) 23:57:52
>>902
include ?
0905デフォルトの名無しさん2010/12/31(金) 00:03:14
addContentView だとlayoutResIDが使えないみたい><
0906デフォルトの名無しさん2010/12/31(金) 00:05:50
inflateしてViewにすりゃいい
0907デフォルトの名無しさん2010/12/31(金) 00:15:14
View view = this.getLayoutInflater().inflate(R.layout.hoge, null);
addContentView(view, null);

こうしたら予期せぬエラーで止まりました><
nullではない気もしますが、なかなかググっても参考になるサイトがみつかりません。。
0908デフォルトの名無しさん2010/12/31(金) 00:28:53
.       j//      /\ヽ∨//∠ヽ.    \\. \         ________
      _/      ∠≠ニ二ニ≧=<´  ヘ.     ', ヘ\ヽ.      /
 _ -‐ ´/  ,   -‐´、_, '⌒`^  、 \::\ } l     ヽヘ ヽ}     /         _|_ \
   ̄ フ´,  /             丶\::V| |      Vl       ,'             |____
.  //./                   `Vヽl |      ヽ ' .     |         /|    ヽ
  / ,イ/                    �Y/,       ヽ.\   |.   l       (_ノ  _ノ
  |/ /       |               ∨ヘ.      ト、 \_ |.   |
.  /     /  /  l:     /  l           ∨i    、   |  ̄   !  l       lヽ│/ /
  l│  /  イ  ,イ.    l  ト、ヽ     / | :l :|   |  l      |   ヽ_ノ   !ー┼‐ |‐┬
  | |   l_メ、」_,;./l     L  l V   ∧ /  :|/   ハ.  ト、   |          |./│ヽ l  |
  | ト.  |.____ ヽ    l´ヽ{ _⊥イ イ /   /    / l/⌒ヽ   .|  ー┼─ └── l  |
  | | ヽ | 、i┘::::i  \  | r┬┬‐┬ァ V  ,∧.   ,'  ´       |   ー┼−
  レ   ヽ!  ゝ- '   \l  i,.┘:::::iノ / ,/〉│ :| {         |    _⊥_     l   |
.      7/l/l/   、     `'ー‐ ' ∠≠r'ノ:jノ :| |         |   (__丿 ヽ    レ  |
     λ    `i`ァー-- 、  /l/l/l ∧‐'.:|:::|  ハ ',        |              l
      `、     レ'    ',     ,/| ::| :|:::| ./ ヽ_>      _|   __|_       _ノ
        ` = 、 '、    ノ  ,.イ∧'|:l.:/l:::|´            \    ._|
              `>-r  =ニi´、.,_`::: |:| { |:::l             |  .(_|
          _,.イ´ヽ.7   /  /:\;八:V:ノ                 |    ノ
       /7:::::!  ○O'´  /::::::::/ヽ.                ',
0909デフォルトの名無しさん2010/12/31(金) 02:03:24
AlertDialog.Builderでリスト形式で選択させるようにsetItemsを使っているのですが
それぞれの項目の左側に別々のアイコンって表示できますか?
0910デフォルトの名無しさん2010/12/31(金) 02:20:57
ウィジェット毎に表示を変えるにはどうしたらいいですか?
1つ目のウィジェットのテキストの色は黒、2つ目は白、とか変えられる様にしたいです。
0911デフォルトの名無しさん2010/12/31(金) 02:24:48
その二つのレイアウトをどのように組み合わせて表示するか次第だなあ
0912デフォルトの名無しさん2010/12/31(金) 02:28:04
>>898
>>896のやり方が正しい
タッチされたViewを直接変更したても、
スクロールして画面外出した後戻ってくると元に戻るぞ
Viewを直接変更しちゃダメ
getViewで返却するViewを変更する
09139102010/12/31(金) 02:41:00
レイアウトは同じだったり、変えたり出来ればと思っています。
0914デフォルトの名無しさん2010/12/31(金) 02:50:45
んじゃsetContentViewするのは変わらない部分だけで、
変えたい部分はViewGroupに対してaddViewやremoveViewすれば良い
09159102010/12/31(金) 02:59:57
ありがとうございます。
09167772010/12/31(金) 04:51:45
GPSの位置情報をコンテントプロバイダに保存するサービスを作ったのですが、
このサービスが取得した位置情報をリアルタイムにMAPに表示するには、
以下の方法のどちらが良いと思いますか?

1.サービスが取得した位置情報をブロードキャストして、MAPを表示しているActivityに渡す。
2.MAPを表示しているActivityがContentObserverを使ってコンテントプロバイダを監視して、
  新しい位置情報が追加されるごとにコンテントプロバイダから取得する。
0917デフォルトの名無しさん2010/12/31(金) 12:22:38
質問です
ExpandableListView,SimpleExpandableListAdapterあたりを使っていて、例えばボタンを押した時のイベント時に
親要素、子要素の追加や削除を行いたいのですができません。
ボタンを押した時に下のような実行時エラーが出ます。
java.lang.IllegalStateException: The content of the adapter has changed but ListView did not receive a notification.
Make sure the content of your adapter is not modified from a background thread, but only from the UI thread.

ListView did not receive a notification. って書いてあるので、ExpandableListView,SimpleExpandableListAdapter
のnotifyメソッドを呼び出してみたんですが、今度は下のような実行時エラーが出ます。
java.lang.IllegalMonitorStateException: object not locked by thread before notify()

どうしたらできるようになりますか?

0918デフォルトの名無しさん2010/12/31(金) 12:26:13
notifyじゃなくてnotifyDataSetChangedじゃないでしょうか
09199172010/12/31(金) 12:46:19
>>918
ExpandableListView,SimpleExpandableListAdapterにはnotifyDataSetChangedは無いと思います
0920デフォルトの名無しさん2010/12/31(金) 12:58:08
さ が せ
0921デフォルトの名無しさん2010/12/31(金) 13:11:17
ごめんなさい、SimpleExpandableListAdapterにありました。
ExpandableListAdapterにSimpleExpandableListAdapterのオブジェクトを持たせてたので気づかなかった・・・
そしてやりたい事もできました。ありがとうございました。
0922 [―{}@{}@{}-] デフォルトの名無しさん2010/12/31(金) 18:23:14
Mavenで開発しています。
eclipseのandroid pluginを用いたRunでは、Emulator/Deviceにデプロイして、自動的にアプリケーションを起動(すでに起動していたら再起動)してくれますが、それをMaven Android Pluginで行うことはできますでしょうか?

現在実行しているゴール : clean install android:emulator-start android:deploy -Dandroid.device=emulator
Maven Android Pluginのconfiguration :
<configuration>
<sdk>
<platform>4</platform>
</sdk>
<deleteConflictingFiles>true</deleteConflictingFiles>
<undeployBeforeDeploy>true</undeployBeforeDeploy>
<emulator>
<avd>***</avd>
<wait>20000</wait>
<options>-no-skin</options>
</emulator>
</configuration>
0923デフォルトの名無しさん2011/01/01(土) 00:19:43
あけおめ!
0924 【豚】 【273円】 2011/01/01(土) 00:26:02
あけおめ。
今年もエスパーレスに期待
0925デフォルトの名無しさん2011/01/01(土) 01:41:51
新年早々ですが、質問させてください。

AlertDialog.Builderを使ってsetPositiveButtonとsetNeutralButtonとsetNegativeButtonの3つを使い、真ん中のNeutralButtonはクリックされても閉じないように実装したいのですが、どのようにすればよろしいでしょうか。

DialogInterface.OnClickListenerを実装すると、onClick()が呼ばれるのですが、メソッド内でdismiss()を書いても書かなくてもダイアログが閉じてしまうため、何度もNeutralButtonをクリックされても閉じないようにしたいです。
0926デフォルトの名無しさん2011/01/01(土) 02:42:36
>>925
新年早々開発とは殊勝だな
0927デフォルトの名無しさん2011/01/01(土) 03:14:38
>>925
ダイアログは多分無理だと思う。
0928デフォルトの名無しさん2011/01/01(土) 03:16:36
>>925
なんかよくわかんねーけど、onClick()でfalse返すとか?
0929デフォルトの名無しさん2011/01/01(土) 03:17:26

教訓: 低知能者は試す前に口走る
0930デフォルトの名無しさん2011/01/01(土) 11:19:31
>>925
普通のActivityでもテーマをDIALOGにすれば見た目をダイアログみたいにできますよ。
09319252011/01/01(土) 12:21:43
>>926, >>927, >>928, >>930

早速のレスありがとうございます。
正攻法?は無さそうですね・・・。

ActivityのテーマをDIALOGにするというのはカスタムダイアログを作る方法ですね。テーマの使いどころを知るという意味でも大変勉強になりました。ありがとうございます。

ちなみに、onClick()は戻り値がvoidでした。
0932デフォルトの名無しさん2011/01/01(土) 13:37:12
AndroidとArduinoがまぎらわしい
0933デフォルトの名無しさん2011/01/01(土) 14:45:31
ラジオボタンで7要素から1,2個選ぶことは、可能でしょうか?

1個しか選べないんですか?
0934デフォルトの名無しさん2011/01/01(土) 14:52:47
ちぇっくぼっくすでやれ
0935デフォルトの名無しさん2011/01/01(土) 15:06:10
>>934
ありがと(-。-)y-~
0936デフォルトの名無しさん2011/01/01(土) 15:23:16
初めて知ったけどAndroidでLINQみたいなことをできるライブラリ作った人いるんだね!すごい!
まだ試してないけどw
0937デフォルトの名無しさん2011/01/01(土) 15:40:48
eclipseが固まるようになってしまいました。

editText = new EditText(this);
editText.s

上のようにeditText.setText(...) と書こうとして、sまで入力した時点で、eclipseが数十秒固まります。
その時topで見るとeclipseが99%くらいcpuを使っています。固まりを脱したら得に重くなる事はありません。
EditText以外でもいろんなところで起こります。

環境はUbuntu 10.10, oracle JDK 1.6.0_23, eclipse-java-helios-SR1-linux-gtk, android-sdk_r08-linux_86,
ADT-8.0.1 です。JDKとeclipseはUbuntuのパッケージではありません。
以前は起こってなかったので、おそらくADT-8にアップデートしてからでしょうか。
回避方法はあるでしょうか。
0938デフォルトの名無しさん2011/01/01(土) 15:43:47
UIレイアウトエディタって腐ってて使い物にならないけど、mac版のだけは比較的ちゃんと表示されるのが不思議
0939デフォルトの名無しさん2011/01/01(土) 16:39:48
ゲームアプリってFlashを移植しただけなの?

ていうかJavaでゲームつくれるの?
0940デフォルトの名無しさん2011/01/01(土) 17:04:03
>>937
コード補完を無効にしてしまえ
0941デフォルトの名無しさん2011/01/01(土) 17:08:24
>>937
heliosはいまいちかも
0942デフォルトの名無しさん2011/01/01(土) 19:04:12
ウブンツでも開発できるのか
まいんちゃんの表紙のやつ買えばいいのか?
0943デフォルトの名無しさん2011/01/01(土) 19:20:18
都条例で入手できればだが
0944デフォルトの名無しさん2011/01/01(土) 19:24:24
田舎だから大丈夫だ
0945デフォルトの名無しさん2011/01/01(土) 19:31:02
そういえば、開発環境はWin/Max/Unix/Linuxのどれが多いんだろう?
俺はターミナルが便利だからUbuntuだけど
0946デフォルトの名無しさん2011/01/01(土) 19:46:23
android入門書を読んでandroidのおおよその仕組みが分かりアプリを作ってる最中なんですが
「こういうことがしたい!」という時に購入した入門書では解答が得られずググっても曖昧なことしか分かりません。

今はttp://developer.android.com/を参考にして勉強しつつ開発してるんですが
何せ英語なんで苦戦中です。

日本語版ってないんですか?
0947デフォルトの名無しさん2011/01/01(土) 19:48:21
Maxがいちばん多いんじゃねえの
0948デフォルトの名無しさん2011/01/01(土) 19:53:02
>>946
誰かが中途半端に訳したやつがどこかにあった気がするが
0949デフォルトの名無しさん2011/01/01(土) 20:04:15
MaxてMac os Xのこと?
業界人じゃないんでこの略し方ははじめてみたわー
0950デフォルトの名無しさん2011/01/01(土) 20:32:05
>>949
業界の人でも初めて見たわ。
0951デフォルトの名無しさん2011/01/01(土) 21:47:31
>>946
入門書ってほとんどその英語を訳したものなんだが
0952デフォルトの名無しさん2011/01/01(土) 22:40:07
Max!!
0953デフォルトの名無しさん2011/01/01(土) 22:55:14
すごい初歩的なんですが
TextView text1 = new TextView(this);
text1.setText("アンドロイド");

テキストをstring.xmlで指定して英語と日本語で勝手に切り替わるようにしたいんですが
レイアウトのxmlを使わずにできるのでしょうか?
0954デフォルトの名無しさん2011/01/01(土) 23:02:53
一度ボタンを押したら押されっぱなし、
もう一回押すと、解除ってどうすればいい??
0955デフォルトの名無しさん2011/01/01(土) 23:09:04
>>946
ゆとりはここでも見てろでゲソ
ttp://www.techdoctranslator.com/
0956デフォルトの名無しさん2011/01/01(土) 23:25:09
Android プログラミングバイブルのツイッタークライアント作ってみた。
感動した。けどソースは丸まるコピーだから中身意味ふw
0957デフォルトの名無しさん2011/01/01(土) 23:34:12
>>953
"アンドロイド"を選択した状態で、Eclipseでリファクタリング>Android>Android文字列抽出をやってみな
ちょっとおかしなコードになる可能性はあるけどね
09589532011/01/02(日) 00:36:08
>>957
できました。ありがとうございます!
こんなかんじ
text1.setText(R.string.text1);

でもvalues-jpを作って日本語のも入れたのにエミュの言語切り替えても
日本語にならないです。

チュートリアルサイトとか見ても勝手に切り替わるって書いてあるんですけど
実機ならちゃんと切り替わるのかな。

0959デフォルトの名無しさん2011/01/02(日) 01:09:12
spモードのアプリ開発ってできますか?
参考サイトなどあれば教えていただきたいです。
0960デフォルトの名無しさん2011/01/02(日) 01:10:37
values-ja
0961デフォルトの名無しさん2011/01/02(日) 01:35:41
jaだったのかあああああ
おりがとうございます
0962デフォルトの名無しさん2011/01/02(日) 02:22:39
>>954
つ トグルボタン(綴りは自分でよろしく)
0963デフォルトの名無しさん2011/01/02(日) 09:50:14
TextViewをクリックされた時にダイアログを出したいんだけど
以下のコードでイベント処理がされません
何が良くないんでしょう

TextView textview = (TextView) findViewById(R.id.textview_id);
textview.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// ダイアログを出す
}
});
0964デフォルトの名無しさん2011/01/02(日) 10:00:17
>>963
ttps://groups.google.com/group/android-developers/browse_thread/thread/5f6a2941ef458153?fwc=1&hl=ja&pli=1
0965デフォルトの名無しさん2011/01/02(日) 11:57:11
>>964
xx.xmlにandroid:clickable="true"を追加する事で動くようになりました
ありがとうございました
0966デフォルトの名無しさん2011/01/02(日) 19:07:19
レイアウトのxmlへの紐付けの書き方がわかりません

こういうのをxmlで設定したいです
LinearLayout linearLayout = new LinearLayout(this);
linearLayout.setBackgroundColor(Color.YELLOW);
linearLayout.setOrientation(LinearLayout.VERTICAL);

こう書きましたがエラーで起動せず
LinearLayout linearLayout = (LinearLayout)findViewById( R.id.back1 );
09679662011/01/02(日) 20:25:47
自己解決しますた
0968デフォルトの名無しさん2011/01/02(日) 21:39:08
あまりに初歩過ぎて申し訳ない
教本(C&R研究所の基礎から学ぶ〜)のp35に沿って
AVDを起動させたいんだけど、実行すると、

Emulator] Weird, the AVD's config.ini file is malformed. Try re-creating it.

となってしまう どうすればいい?
AVDは2.2(APIは8)で構築したんだけどそのせい?
eclipse自体は3.6で、本は3.4ベース
ADBの更新とかは問題ないようなんだけど・・・
0969デフォルトの名無しさん2011/01/02(日) 22:42:31
>>968
ようわからんが、日本語のフォルダの下に置いてないか?
09709682011/01/02(日) 23:56:30
調べてみたら、eclipceのインストールフォルダの上、
管理者システムフォルダに全角数字を使ってた・・・
これかな?
変更できないんだけど、どうしよう?
0971デフォルトの名無しさん2011/01/03(月) 00:00:31
>>970
開発云々の前にosに付随してくるソフトの勉強するべきだね。
0972デフォルトの名無しさん2011/01/03(月) 00:25:16
>>970
とりあえず、原因はそれじゃよ
対策は、がんばれ
0973デフォルトの名無しさん2011/01/03(月) 02:35:59
ってか>>969がエスパー過ぎるw
0974デフォルトの名無しさん2011/01/03(月) 11:58:38
ちょっとしたアプリを作っているんだけど,データベースがうまく扱えないorz
誰か助けてー

データベースにinsertするときに
no such column: (column名):, while compiling: UPDATE ...........
table (テーブル名) has no column named (column名):, while compiling: INSERT INTO ....
みたいなエラーが発生する.
本やらネットやらで調べたけどどこがおかしいのかよくわからん.
 
誰か上記のエラーに心当たりがある人いる?
0975デフォルトの名無しさん2011/01/03(月) 12:13:52
>974
何を言っているのかよくわからんな

そのようなカラムは存在しません。(カラム名):UPDATE.... コンパイル中に発生
テーブル(テーブル名)は(カラム名)で命名されたカラムを所持しません。:INSERT INTO...

調べるところは明確だろ
0976デフォルトの名無しさん2011/01/03(月) 14:09:08
>>974
おせちの材料になってしまえ
0977デフォルトの名無しさん2011/01/03(月) 14:13:13
あれは美味しそうだな。
チーズがすごくきになる。
0978デフォルトの名無しさん2011/01/03(月) 14:24:30
>>974
db4o簡単でいいぞ
0979デフォルトの名無しさん2011/01/03(月) 15:13:00
>>978
db4oってまだ生きてんの?
0980デフォルトの名無しさん2011/01/03(月) 16:02:24
先生大変です!db4oタンが息をしていません!
09817772011/01/03(月) 16:50:03
db4oタンてAndroidでも使えるのか...
0982デフォルトの名無しさん2011/01/03(月) 20:45:02
db4oみてみたけどSQL書いたほうが楽な気がする
0983デフォルトの名無しさん2011/01/03(月) 23:19:05
/res/layoutフォルダにxmlファイルを追加たんだけど,そのファイルを削除てから
実機でアプリを動かそうとすると
java.io.IOException: Unable to upload file: Local file doesn't exist.
なるエラーが発生して動かせなくなったorz
Local fileって削除したxmlファイルのことを指しているのだろうか?
0984デフォルトの名無しさん2011/01/03(月) 23:24:33
>>983
再ビルドした?
0985デフォルトの名無しさん2011/01/03(月) 23:47:06
>>984
レスthx
なんかいじってたら解決できた(汗
0986デフォルトの名無しさん2011/01/03(月) 23:49:41
>>985
なんだそりゃ
0987デフォルトの名無しさん2011/01/04(火) 01:19:46
初歩的ですまない
intentで文字列を送りたいのだがどうしたらいい?

putExtraメソッドでどうやっておくればよい?
0988デフォルトの名無しさん2011/01/04(火) 01:49:09
ListViewに対してsdcard内のフォルダ を表示しています。
ところが端末を傾けると、傾ける前に表示されていた
内容が破棄されてしまいます。
破棄されない様な仕組みが必要なら、具体的な
ヒントをお願いします。
0989デフォルトの名無しさん2011/01/04(火) 05:53:07
再取得すればいいんじゃないの
0990デフォルトの名無しさん2011/01/04(火) 09:14:05
再取得は(場合によっては)コストがかかるかも知れない。
傾ける前の表示時に使用した情報がアダプタにあるから、
それを再利用すればいいか。

ヒントありがとう。
0991デフォルトの名無しさん2011/01/04(火) 12:35:34
>>987
送る方はこんな感じ
Intent intent = new Intent(this とか ACTION_ なんたらとか);
intent.putExtra("myHogeHogeExtra", "文字列");
startActivity(intent);
受け取る方はこんな感じ
String s = getIntent().getStringExtra("myHogeHogeExtra");
0992デフォルトの名無しさん2011/01/04(火) 12:37:01
>>988
onSaveInstanceState と onRestoreInstanceState を実装するべき場面じゃないかな
レス数が950を超えています。1000を超えると書き込みができなくなります。