Android 如何在单击按钮时获取适配器类中的点击列表项位置

Android 如何在单击按钮时获取适配器类中的点击列表项位置,android,android-listview,android-arrayadapter,custom-adapter,Android,Android Listview,Android Arrayadapter,Custom Adapter,我试图在单击按钮时获取适配器类中的点击列表项位置,但未获得任何成功 首先,我必须得到点击列表项,然后想删除该行 得到如下内容:D/strPosition:-(1922):com.and.field。Transport@b3ddf5c0 使用以下代码: viewHolder.btnDelete.setOnClickListener(new OnClickListener() { @Override public void onClick(final

我试图在单击按钮时获取适配器类中的点击列表项位置,但未获得任何成功

首先,我必须得到点击列表项,然后想删除该行

得到如下内容:
D/strPosition:-(1922):com.and.field。Transport@b3ddf5c0

使用以下代码:

viewHolder.btnDelete.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(final View v) {         

                strPosition = arrayList.get(position).toString();
                Log.d("strPosition::-", strPosition);

                // and then want to delete that row using tapped position

                strName = arrayList.get(position).getName().toString();                         

            }
        });

您不能在
onClick
方法中使用
position
,而是使用下一种方法

viewHolder.btnDelete.setTag(position);
viewHolder.btnDelete.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(final View v) {
            Integer taggedPosition = (Integer) v.getTag();
            Log.d("Position::-", Integer.toString(taggedPosition));
            strName = arrayList.get(taggedPosition).getName().toString();
        }
    });

您不能在
onClick
方法中使用
position
,而是使用下一种方法

viewHolder.btnDelete.setTag(position);
viewHolder.btnDelete.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(final View v) {
            Integer taggedPosition = (Integer) v.getTag();
            Log.d("Position::-", Integer.toString(taggedPosition));
            strName = arrayList.get(taggedPosition).getName().toString();
        }
    });

你不是已经有这个职位了吗?在您的变量命名位置?我不明白这个问题。你不是已经有这个职位了吗?在您的变量命名位置?我不明白这个问题。@Sun您使用了
ArrayAdapter
,所以您不需要将
arrayList
存储在那里,因为您已经将它传递给了超级构造函数。使用适配器的方法来等。为什么不使用McClickListener呢?onItemClick将给出所单击项目的位置,无需设置标签或类似的东西…@2Dee因为作者在那里有按钮,它对项目单击(例如查看)执行另一个操作(删除)@gio请检查以下内容:@Sun you used
ArrayAdapter
,因此您不需要在那里存储
arrayList
,因为你已经把它传给了超级构造函数。使用适配器的方法来等。为什么不使用McClickListener呢?onItemClick将给出所单击项目的位置,无需设置标记或类似的内容…@2Dee,因为作者在那里有按钮,它对项目单击(例如查看)执行另一个操作(删除)@gio请检查: