![](/img/trans.png)
[英]Android: How to set OnClickListener for Button is ListView?
[英]How to set the OnClickListener for button in ListView in Android?
我想将button
设置为ListView
,并且该button
显示在ListView
。 我尝试将以下button
的ClickListener
设置为以下代码。
@Override
public View getView(int position, View view, ViewGroup parent) {
// TODO Auto-generated method stub
ViewHolder viewHolder;
Log.d(TAG, "getView");
if(view == null){
view = mInflator.inflate(R.layout.streamid_data, null);
viewHolder = new ViewHolder();
viewHolder.id_text = (TextView) view.findViewById(R.id.ID_text);
viewHolder.get = (Button) view.findViewById(R.id.get);
//The code is error , it only can set viewHolder.get.setOnClickListener(new ItemButton());
viewHolder.get.setOnClickListener(new ItemButton(position));
}else {
viewHolder = (ViewHolder) view.getTag();
}
return view;
}
}
static class ViewHolder {
TextView id_text;
Button get;
}
class ItemButton implements OnClickListener {
private int position;
private DemoActivity demoActivity;
private void ItemButton(int pos) {
// TODO Auto-generated method stub
this.demoActivity = context;
position = pos;
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Log.d(TAG, "ItemButton = " + list.get(position).get("id"));
}
}
但是viewHolder.get.setOnClickListener(new ItemButton());
是错误的,它只能找到函数ItemButton()
,而不能对函数ItemButton(int pos)
罚款。
所以我不能将代码设置为viewHolder.get.setOnClickListener(new ItemButton(position));
。
我想念什么吗?
改成
viewHolder.get.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.d(TAG, "ItemButton = " + list.get(position).get("id"));
}
});
做这样的事情
@Override
public View getView(**final** int position, View view, ViewGroup parent) {
// TODO Auto-generated method stub
ViewHolder viewHolder;
Log.d(TAG, "getView");
if(view == null){
view = mInflator.inflate(R.layout.streamid_data, null);
viewHolder = new ViewHolder();
viewHolder.id_text = (TextView) view.findViewById(R.id.ID_text);
viewHolder.get = (Button) view.findViewById(R.id.get);
//The code is error , it only can set
// viewHolder.get.setOnClickListener(new ItemButton());
}else {
viewHolder = (ViewHolder) view.getTag();
}
viewHolder.get.setOnClickListener(new View.OnOnClickListener(){
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
//access **final** position here
Log.d(TAG, "ItemButton = " + list.get(position).get("id"));
}
}));
return view;
}
}
Button btnSearchCustomer = (Button) view.findViewById(R.id.btnSearchCustomer);
btnSearchCustomer.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.