我是新来的Android和正在尝试开发一种新的Android应用程序。 但我很努力siolve在我的项目的问题之一。
我使用的是从列表视图扩展baseadapter
,需要thelistview的每一行中添加一个按钮。 当我点击该button
在列表视图中的任何行,我想它应该被删除。 然而,当我这样做,其他一些按钮也获得在ListView删除。
我怎么解决这个问题? 谢谢..
我是新来的Android和正在尝试开发一种新的Android应用程序。 但我很努力siolve在我的项目的问题之一。
我使用的是从列表视图扩展baseadapter
,需要thelistview的每一行中添加一个按钮。 当我点击该button
在列表视图中的任何行,我想它应该被删除。 然而,当我这样做,其他一些按钮也获得在ListView删除。
我怎么解决这个问题? 谢谢..
你有一个适配器,活动和某种数据源
在适配器的时候附加一些数据按钮能够一一区别:
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();
对不起,我的代码中的任何错误,但我只是想给你一个想法。
我面临着同样类型的问题。 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项