我有一个带有按钮的自定义ListView,当我点击这个按钮时,没有调用onItemClickListener(),而是调用按钮的onClick()方法。
我想要实现的是获取列表项的id位于我点击的按钮(我需要这个id从我的数据库中删除好的条目)。
这是我的适配器:
sa = new SimpleAdapter (this.getBaseContext(), listItem, R.layout.list_mission,
new String[] {"marque", "date"}, new int[] {R.id.list_vehicule, R.id.list_date});
谢谢!
答案 0 :(得分:1)
您可以使用setTag
例如:item_0中有一个button_0
getView
中的:
button_0.setTag(position)
在onClick
您可以按v.getTag()
答案 1 :(得分:1)
您可以使用interface
来实现此目的。像这样创建自定义类:
public interface MyCustomClickListener{
public void onMyClickListener(int id){}
}
在您的自定义适配器中,您可以使用此interface
,如下所示:
private MyCustomClickListener mMyClickListener;
public MyAdapter(Activity activity){
try {
mMyClickListener = (MyCustomClickListener) activity;
} catch(ClassCastException e){
throw new ClassCastException(activity + " must implements MyCustomClickListener");
}
}
@Override
public View getView(int position, View convertView, ViewGroup parent){
Button mMyBtn = // initialise Button
mMyBtn.setOnClickListener(new View.OnClickListener){
@Override
public void onClick(View view){
mMyClickListener.onMyClickListener(position);
}
};
}
在您的Activity
:
public class MyActivity extends Activity implements MyCustomClickListener{
@Override
public void onMyClickListener(int id){
// your id
}
}
这应该像魅力一样! :)