1つの画面にたくさんのボタンを配置し、一部はxmlで
android:id="@+id/button_a"
みたいな感じでIdをセットし、一部はコードで
btn_1.setId(1);
のように直接数値でセットした場合、xmlで自動的に割り振られたIdが偶然、
コードで指定したIdと重複してしまい、ボタンによって違う 動きをさせたい時
に上手く行かなくなるようなことは起こらないのでしょうか?
起こる可能性があるなら、それを避けるにはどうするのが良いでしょうか?
よし
ID自体はレイアウトxml以外でも定義することができます。
Javaから定義済みIDを利用することで重複する可能性は無くなります。
http://developer.android.com/guide/topics/resources/more-resources.html#Id
2011年11月15日15:04 Yoshi <yosh...@gmail.com>:
> --
> このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
> このグループに投稿するには、android-g...@googlegroups.com にメールを送信してください。
> このグループから退会するには、android-group-j...@googlegroups.com にメールを送信してください。
> 詳細については、http://groups.google.com/group/android-group-japan?hl=ja からこのグループにアクセスしてください。
>
>
早速ご返信いただき、ありがとうございます。
通常は、示していただいたやり方で上手くできそうですが、例えば、データ・
ファイルから必要なボタンの数を読み出して、
for(i=0; i<num; i++)
{
btn[i].setId(i);
}
みたいなやり方で設定したい場合、ボタンの数の最大数のIdを用意しておい
て、1つずつ設定していくより仕方がないんでしょうか?(^^;
よし
Viewの識別方法はID以外にもTagを利用する方法があります。
setTagで任意のObjectをViewに関連付けることが出来ます。
2011年11月15日16:06 Yoshi <yosh...@gmail.com>:
情報、ありがとうございました!
ところで今回、リソースIdについて色々検索していて、「ADT14からR.id.○○がconstantでなくなったため、switch文のcaseとして使えなくなった」みたいな事になっているのを初めて知りました。(私の環境では、まだ使えてますが(^^;)
という事もあり、今回は、xmlで定義したボタンにコードの方でIdを付け直す事にしました。それでswitch caseの問題にも対応できるはずだし。(^^;
よし
> ところで今回、リソースIdについて色々検索していて、「ADT14からR.id.○○がconstantでなくなったため、switch文のcaseとして使えなくなった」みたいな事になっているのを初めて知りました。(私の環境では、まだ使えてますが(^^;)
自動生成されるR.javaがstatic finalからstaticになる話ですね。
これが適応されるのはライブラリプロジェクトに指定したプロジェクトのみです。
普通にアプリを作成する時は全く問題ありません。
将来的に他のアプリの一部として利用する予定がある場合はスイッチ文を避けて書きましょう。
捕捉までに。
2011年11月16日1:50 Yoshi <yosh...@gmail.com>: