我需要获取动态生成按钮的ID

时间:2015-03-17 16:07:32

标签: android android-layout android-intent

从这段代码中,它创建了来自另一个布局的给定值的动态按钮。我需要获取该ID并添加另一个按钮(如果动态按钮单击,则需要动态添加另一个按钮)。

    for (int i = 0; i < value1; i++) {
LinearLayout.LayoutParams paramsIButton = new LinearLayout.LayoutParams
                ((int) ViewGroup.LayoutParams.WRAP_CONTENT, (int)     ViewGroup.LayoutParams.WRAP_CONTENT);
            ibutton = new ImageButton(HomePage.this);
            ibutton.setImageResource(R.drawable.add);

            ibutton.setLayoutParams(paramsIButton);
            paramsIButton.topMargin = -70;
            paramsIButton.leftMargin = 370;
            paramsIButton.bottomMargin = 30;
            ibutton.setId(i);

            ibutton.getPaddingBottom();
            ibutton.setBackgroundColor(Color.WHITE);
            ibutton.setAdjustViewBounds(true);

            rR.addView(ibutton);

         }

2 个答案:

答案 0 :(得分:1)

如果我从您在评论中提供的其他信息中理解正确,您需要知道用户何时点击了按钮。您可以将OnClickListener设置为按钮。

// Somewhere in your activity . . .

@Override
public void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);    

    Button button = (Button) findViewById(R.id.button1);

    button.setOnClickListener(new OnClickListener(){
      public void onClick(View v){
         // The button is clicked! Do whatever you want.
      }
    });
}

// ...
// Rest of the code
// ...

当然,您应该使用按钮的ID替换R.id.button1

答案 1 :(得分:1)

在我看来,你需要为动态添加按钮添加onClickListener。

让您的类实现OnClickListener,然后为动态按钮添加一个侦听器:

ibutton.setOnClickListener(this);

并在您的班级中添加onClick Listener:

@Override
   public void onClick(View v)
   {
      // do something with this ID
      v.getId()
   }

我不知道你是如何跟踪灯泡和粉丝的,我希望你不要仅通过UI元素来做。我可能会做的有点不同,创建一个数据结构来跟踪灯泡和风扇,并将特定的灯泡或风扇对象作为标签附加到UI元素。