1

これが私の最初の質問です。私は Android で簡単なゲームを書いています (私の最初のゲーム)。64面のボードゲームです。1 つのフィールドがクリックされるたびに、何かを行う必要があります。私はこの方法でそれを行う方法を考え出しました:

switch(v.getId()) {
case R.id.field1:
...
...
...
}

それは機能していますが、64フィールドではちょっと面倒です。どうにかしてフィールド ID を取得し、ループで実行できますか?

findViewById(R.id.field+i).doSomething();

この方法ではできないことはわかっていますが、私の考えを説明したいだけです。以下は Javascipt で行いますが、Java で行うにはどうすればよいですか? 出来ますか?

4

1 に答える 1

0

私の知る限り、Eclipse の Android レイアウト エディタを使用してこれを行う方法はありません。最も簡単な方法は、ビューをプログラムで作成し、コレクションまたは配列に格納することです。

TextView[] fields = new TextView[64];
for (int i = 0; i < 64; i++) {
    TextView textView = new TextView(context);
    textView.setText("Programmatic TextView");
    parentLayout.addView(textView, new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
    fields[i] = textView;
}

レイアウト エディタでparentLayoutビューを作成できます。

于 2012-12-25T14:23:37.890 に答える