自定义ListView - 当我点击列表中的按钮时获取项目的ID

时间:2014-09-08 09:28:43

标签: android android-listview

我有一个带有按钮的自定义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});

谢谢!

2 个答案:

答案 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
    }

}

这应该像魅力一样! :)