forループでボタンを作成することができましたが、その中に変数を宣言しない理由はありませんでした。残念なことに、eclipseは "bt"のみを識別し、ループ内で表している番号でmy [i]を置き換えず、その結果、レイアウト内の正しいidを見つけることができます。どのようにこの作品を作るための任意の考えですか?また、私は動作しません鉱山など美しいなど他のソリューションのためのGREATFULよ;)ボタンの変数をforループで配列として宣言します。
Button [] bt = new Button[6];
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.start_layout);
bt[0] = (Button) findViewById(R.id.bt0);
bt[1] = (Button) findViewById(R.id.bt1);//This is what i'm trying to replace
bt[2] = (Button) findViewById(R.id.bt2);
bt[3] = (Button) findViewById(R.id.bt3);
bt[4] = (Button) findViewById(R.id.bt4);
bt[5] = (Button) findViewById(R.id.bt5);
for (int i=0; i<6; i++) {
final int b = i;
bt [i] = (Button)findViewById(R.id.bt[i]); <----//Whith this
bt [i].setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent myIntent = new Intent(Start.this, MainActivity.class);
myIntent.putExtra("players", b);
startActivity(myIntent);
//startActivity(new Intent(Start.this, MainActivity.class));
}
});
}
}
'BTを[i]は' 'に置き換えられますBT [1]'と'i = 1'では' bt1'ではありません。あなたはそのような変数を使用することはできません。 –
@RohitJainだから、OPが質問するのはそのためです。 –
ここにあなたの問題の解決策がありますhttp://stackoverflow.com/questions/3648942/dynamic-resource-loading-android – evilone