android - 如何从以编程方式添加的按钮中获取 OnClick()?

标签 android button onclick onclicklistener buttonclick

我添加了一些带有以下几行的按钮:

for (int i=0; i<XML.size(); i++) {
//add button
ToggleButton b = new ToggleButton(this); 
// Setting the parameters
lefttextv.setLayoutParams(lleft); 
b.setLayoutParams(bright);
//customize button
    b.setOnClickListener(this);
b.setId(id_button);
System.out.println(id_button);
b.setHeight(100);
b.setWidth(200);
// Adding to the RelativeLayout as a child
layouth.addView(lefttextv);
layouth.addView(b);
    id_button++;  
    }

但是我怎样才能获得这些的 OnClick() 方法呢?我已经用这个方法实现了 View.OnClickListener:

@Override
public void onClick(View v) {
    // TODO Auto-generated method stub
    switch (v.getId())
    {
    case id_button: Log.d("Button 0","Button 0 pressed);
        break;
    }
}

但这不起作用,我如何获得Id?

最佳答案

b 是 View ,如果您的 onClick 方法在您的主类中,只需使用 b.setOnClickListener(this); 并让您的 Activity 实现 onClickListener 就可以了它。或者按照通常的方式设置巡回听众。

id 用于 xml 引用,创建对象并使用此 id 进行引用,在您的情况下,您创建了具有 ToggleButton 的所有属性的 View b。这是观点。

相反,如果使用 v.getId(),只需使用 if(v == b)

关于android - 如何从以编程方式添加的按钮中获取 OnClick()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12564616/

相关文章:

android - 退出应用程序后按钮背景更改为默认

jquery - 如何在链接点击时显示jquery datepicker?

java - 苹果。移动应用程序自动化。等到

Android - 触发调整调整大小

android - 我可以使用 .setVisibility(View.GONE) 还是应该只删除 View 本身?

javascript - 将我的 jQuery 单击事件与现有对象的 onclick 属性混合

android - Switch 语句无法正常运行

android - 更改 Android Motion Layout 中的内容后如何使 "wrap_content"工作?

android - Android 2.2 中 View 的拖放

Android按钮onLongClick,如何在长按释放按钮时获取监听器