通过按钮传递值(可能隐藏)

时间:2017-02-24 22:27:04

标签: android button

此代码一直工作到昨晚,但现在。我想要一个值与按钮链接的记录,我使用设置并获取标记,但只返回最后一个值。

//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);    
        }

错误是否明显 - 不是我。

1 个答案:

答案 0 :(得分:0)

它返回最后一个值,因为在所有创建的侦听器中,您始终引用相同的按钮(newBut变量的最后一个值),忽略您拥有的实际点击源视图作为参数。应该是:

newBut.setOnClickListener(new View.OnClickListener()
        {
            public void onClick(View v)
            {
                int newValue = Integer.parseInt(v.getTag().toString());
                System.out.println(newValue);
           }
        });