我是 android 新手,正在尝试开发一个新的 android 应用程序。但我正在努力解决我项目中的一个问题。
我正在使用扩展的列表视图,baseadapter
并且需要在列表视图的每一行中添加一个按钮。当我单击button
列表视图的任何行中的时,我希望它应该被删除。但是,当我这样做时,列表视图中的其他一些按钮也会被删除。
我怎么解决这个问题?谢谢..
我是 android 新手,正在尝试开发一个新的 android 应用程序。但我正在努力解决我项目中的一个问题。
我正在使用扩展的列表视图,baseadapter
并且需要在列表视图的每一行中添加一个按钮。当我单击button
列表视图的任何行中的时,我希望它应该被删除。但是,当我这样做时,列表视图中的其他一些按钮也会被删除。
我怎么解决这个问题?谢谢..
你有一个适配器、活动和某种数据源
在您的适配器中,您将一些数据附加到按钮以便能够相互区分:
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();
对不起,我的代码中有任何错误,但我只是想给你一个想法。
我遇到了同样类型的问题。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 项目中的按钮