我正在尝试使用每行上的两个按钮创建一个listView。我有一个适配器,其中声明了我的列表的按钮和其余视图。我的问题是我无法从主要活动中触发按钮。我认为下面的代码应该可以工作,但事实并非如此。
public class Zmenu extends Activity {
final EfficientAdapter Myadapter=new EfficientAdapter(this);
final ListView l1 = (ListView) findViewById(R.id.ListView01);
l1.setAdapter(Myadapter);
l1.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
switch(arg1.getId()) {
case R.id.Button1 :
//do this block
break;
case R.id.Button2 :
//do this block
break;
}
}});
}
在我的主要活动中如何解雇关键听众时,任何人都可以帮助我解决我的错误吗?
答案 0 :(得分:1)
您需要让按钮中的事件渗透到父列表视图(请参阅How to pass the onClick event to its parent on Android?)或您EfficientAdapter
的{{1}}函数中,您需要注册监听器使用项目中的每个按钮。
答案 1 :(得分:0)
编辑:您没有正确的代码布局。您需要在onCreate函数中实现您的代码
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);//here goes your layout
final EfficientAdapter Myadapter=new EfficientAdapter(this);
final ListView l1 = (ListView) findViewById(R.id.ListView01);
l1.setAdapter(Myadapter);
l1.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
switch(arg1.getId()) {
case R.id.Button1 :
//do this block
break;
case R.id.Button2 :
//do this block
break;
}
}
});
}