hxn_217 2012-10-29 07:28 采纳率: 0%
浏览 5084
已采纳

以程序的方式从添加的按钮中获得OnClick()事件

我用以下代码添加了一些按钮:

for (int i=0; i<XML.size(); i++) {
//添加按钮
ToggleButton b = new ToggleButton(this); 
// 参数设置
lefttextv.setLayoutParams(lleft); 
b.setLayoutParams(bright);
//自定义按钮
    b.setOnClickListener(this);
b.setId(id_button);
System.out.println(id_button);
b.setHeight(100);
b.setWidth(200);
// 作为子类添加到RelativeLayout布局
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?

  • 写回答

3条回答 默认 最新

  • LiDaming_and 2012-10-30 02:14
    关注

    b是视图,如果你的onClick方法在主类中,使用b.setOnClickListener(this);
    并且让activity实现onClickListener方法或者按常规方法设置接听事件。

    id是用于xml引用,对象创建后要使用这个id引用,在你的例子中,你常见的视图b包含了ToggleButton的所有的属性。

    使用if(v == b)代替if v.getId()

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!