2

我是 android 新手,正在尝试开发一个新的 android 应用程序。但我正在努力解决我项目中的一个问题。

我正在使用扩展的列表视图,baseadapter并且需要在列表视图的每一行中添加一个按钮。当我单击button列表视图的任何行中的时,我希望它应该被删除。但是,当我这样做时,列表视图中的其他一些按钮也会被删除。

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

4

2 回答 2

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 标记为要隐藏的 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();

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

于 2012-07-06T14:06:32.437 回答
0

我遇到了同样类型的问题。setOnItemClickListener如果您在每个 listView 项目上添加类似按钮的项目,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 项目中的按钮

于 2012-07-06T13:48:49.403 回答