Baby_Bonnie 2013-01-10 06:24 采纳率: 96.4%
浏览 3125
已采纳

程序化添加按钮如何获得OnClick()方法?

我在程序中添加了一些buttons。

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

还是不能获取OnClick()方法,怎么能获取ID呢?

  • 写回答

5条回答 默认 最新

  • ccchp 2013-01-11 08:20
    关注

    你使用for循环生成了xml.size()个button,setId(id_button);id_button++

    switch (v.getId())
        {
        case **id_button**: Log.d("Button 0","Button 0 pressed);
            break;
        }
    

    这部分代码的id_button应该是最后一个按钮的ID,你点击最后一个按钮应该会打印出信息吧

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

报告相同问题?

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog