此代码一直工作到昨晚,但现在。我想要一个值与按钮链接的记录,我使用设置并获取标记,但只返回最后一个值。
//create a layout
LinearLayout layout = (LinearLayout)findViewById(R.id.linearlayout);
// create a list of buttons
for(x=0; x<3; x++)
{
newBut = new Button(this);
newBut.setText("("TEXT");
newBut.setTextColor(Color.parseColor("#FFFFFF"));
newBut.setTag(x); //hide job id within the button.
newBut.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
int newValue = Integer.parseInt(newBut.getTag().toString());
System.out.println(newValue); //this just a test to display the value
}
});
layout.addView(newBut);
}
错误是否明显 - 不是我。
答案 0 :(得分:0)
它返回最后一个值,因为在所有创建的侦听器中,您始终引用相同的按钮(newBut
变量的最后一个值),忽略您拥有的实际点击源视图作为参数。应该是:
newBut.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
int newValue = Integer.parseInt(v.getTag().toString());
System.out.println(newValue);
}
});