我使用10个带有10个ID的按钮动态创建布局。像这样:
private Button myButton;
private TextView wynik;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
createLayoutDynamically();
score = (TextView) findViewById(R.id.textView2);
}
private void createLayoutDynamically() {
int a = 10;
for ( int q = 1; q < a; q++) {
myButton = new Button(this);
myButton.setText("q:"+q);
myButton.setId(q);
TableRow layout = (TableRow) findViewById(R.id.tableRow1);
layout.addView(myButton);
}
}
}
现在我想从我的10个按钮中获取此ID只有当我点击按钮并将整数放入textView&#34;得分&#34;然后总结这些整数。
例如: q:1 q:2 q:3 q:4 q:5是单击q:1和q:3和q:4时的按钮我想要这些按钮的总和值。
1 + 3 + 4 = 8。
答案 0 :(得分:2)
我不认为你应该使用这个ID,因为那不是它的用途。我认为您应该使用tag
属性,并且在单击按钮时需要单击侦听器。
private void createLayoutDynamically() {
int a = 10;
for ( int q = 1; q < a; q++) {
myButton = new Button(this);
myButton.setText("q:"+q);
myButton.setId(q);
myButton.setTag(q);
myButton.setOnClickListener(listener);
TableRow layout = (TableRow) findViewById(R.id.tableRow1);
layout.addView(myButton);
}
}
在类级声明一个变量:
private int total;
然后当你点击按钮时:
Private OnClickListener listener = new OnClickListener()
{
public void onClick(View v)
{
int buttonValue = (int)v.getTag();
total += buttonValue;
myTextView.setText(String.valueOf(total));
}
}