处理按钮事件列表视图问题的每一行中(Handling button event in each ro

2019-06-26 02:45发布

我是新来的Android和正在尝试开发一种新的Android应用程序。 但我很努力siolve在我的项目的问题之一。

我使用的是从列表视图扩展baseadapter ,需要thelistview的每一行中添加一个按钮。 当我点击该button在列表视图中的任何行,我想它应该被删除。 然而,当我这样做,其他一些按钮也获得在ListView删除。

我怎么解决这个问题? 谢谢..

Answer 1:

你有一个适配器,活动和某种数据源

在适配器的时候附加一些数据按钮能够一一区别:

public class ExpAdapter extends ListAdapter {

    @Override
    public View getView(int groupPosition, boolean isExpanded,
            View convertView, ViewGroup parent) {
                /* SOME CODE HERE*/
        convertViewButton.setTag(buttonId);
        return convertView;
    }
                /* SOME CODE HERE*/
}

在活动中,你标记按钮ID作为一个被隐藏:

        public boolean onItemLongClick(AdapterView<?> arg0, View arg1,
                int arg2, long arg3) {
            storageOfHiddenButtonsIds.add((Long)arg1.getTag());
        }};

然后ListAdapter这样的变化:

@Override
public View getView(int groupPosition, boolean isExpanded,
        View convertView, ViewGroup parent) {
            /* SOME CODE HERE*/

    convertViewButton.setTag(buttonId);

    if(storageOfHiddenButtonsIds.contains(buttonId))
    {
      convertViewButton.setVisiblity(View.GONE);
    }
    return convertView;
}

当你希望你的adatper改变你,不要忘记调用

this.expAdapterAllTaks.notifyDataSetChanged();

对不起,我的代码中的任何错误,但我只是想给你一个想法。



Answer 2:

我面临着同样类型的问题。 ListView的setOnItemClickListener如果添加项目就像每个ListView项的按钮不工作。 解决办法是使用onClick列表中的项目布局(你在自定义适配器文件中使用)作为

<ImageButton
        android:id="@+id/my_delete"
        android:onClick="onDeleteButtonClickListener" 
        ... and so on />

其中onDeleteButtonClickListener是在设置列表视图中的适配器活性的方法。

public void onDeleteButtonClickListener(View v) {
// your code
}

这里的listItem指ListView的各行项目


有用的链接: 巴顿在ListView项



文章来源: Handling button event in each row of Listview issue