问题描述
- 程序化添加按钮如何获得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呢?
解决方案
你使用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,你点击最后一个按钮应该会打印出信息吧
解决方案二:
貌似这是JAVA的,MFC里面倒还是晓得点,设置ID后还需要关联的,然后添加Onclick事件处理函数,这个JAVA不晓得是不是这样
解决方案三:
public void onClick(View v) {
int id = v.getId();
if (id < id_button) {
Log.d("Button " + id, "Button "+id+ " pressed");
}
}
解决方案四:
你已经设置了button的id,例如id_button是吧
添加onCreate方法:
b1.setOnClickListener(this);
在onClick方法中使用id
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(v.getId() == R.id.id_button)
{
Log.d("Button 0","Button 0 pressed);
break;
}
}
时间: 2024-08-30 01:03:16