Tôi đã quản lý để tạo các nút trong vòng lặp for và không thấy lý do nào không khai báo các biến của tôi bên trong nó. Thật không may eclipse chỉ xác định "bt" và không muốn thay thế [i] của tôi với số nó đại diện trong vòng lặp và kết quả là tìm id chính xác trong bố cục của tôi. Bất kỳ suy nghĩ về cách thực hiện công việc này? Tôi cũng biết ơn đối với bất kỳ giải pháp khác như xinh đẹp như tôi, mà không làm việc;)Tuyên bố các biến của nút dưới dạng mảng với vòng lặp for android
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] 'sẽ được thay thế với' BT [1] 'và không phải 'bt1' cho' i = 1'. Bạn không thể sử dụng biến như vậy. –
@RohitJain đó là lý do tại sao OP hỏi câu hỏi. –
Đây là một giải pháp cho vấn đề của bạn http://stackoverflow.com/questions/3648942/dynamic-resource-loading-android – evilone