【发布时间】:2015-12-24 18:40:54
【问题描述】:
我有一个特殊的问题,我还没有找到答案。我无法处理这个问题。
那么...有没有办法在ListView 上动态隐藏或显示项目(图像)?
我的意思是,在点击名为“编辑”的工具栏菜单项后,在文本旁边的 ListView 上应该会出现图像。当用户单击此图像时,应从ListView 和数据库中删除此文本。而且,在点击“完成”后,之前出现的图像应该会消失。
我为此花了一整夜,我还没有找到答案,所以请大家帮帮我!
我有这个:
点击编辑后想要这个:
这是我的适配器的一部分(从 BaseAdapter 扩展)
public View getView(final int position, View convertView, final ViewGroup parent) {
if(convertView == null){
convertView = inflater.inflate(R.layout.list, null);
TextView textView = (TextView) convertView.findViewById(R.id.textView);
textView.setText(todo.get(position));
ImageView circleImage = (ImageView) convertView.findViewById(R.id.circleImage);
Picasso.with(mActivity).load(R.drawable.circle_image).transform(new CircleTransform()).into(circleImage);
}
if(editMode){
circleImage.setVisibility(View.GONE);
} else circleImage.setVisibility(View.VISIBLE);
return convertView;
}
public void setMode(boolean editMode){
this.editMode=editMode;
notifyDataSetChanged();
}
来自 MainActivity 的 onOptionItemSelected:
else if(id == R.id.edit){
mToDoFragment = new ToDOFragment();
mFToDoFragment.setEditable(true);
invalidateOptionsMenu();
return true;
}
还有,ToDoFragment 的最后一部分:
public void setEditable(boolean editable){
mFavouritesListAdapter.setMode(editable);
}
在那之后,我得到了如此漂亮的 NullPointerException :(
java.lang.NullPointerException: Attempt to invoke virtual method 'void adapters.ToDoListAdapter.setMode(boolean)' on a null object reference
【问题讨论】:
-
是的,我可以帮助您,但请告诉我您的开发成果。给我看一些东西。
-
我的意思是这是可能的。只需管理原始数据集,编辑和删除选项应应用于数据集。数据集与您的列表绑定,并在需要时适当地调用通知数据集。
-
@BhavdipPathar 添加了两张照片 :)
-
当你点击正确的 [x] 图标时,你想从列表视图中删除该项目。
-
没错,我知道该怎么做。我不知道在用户按下编辑按钮后如何设置这些圈子的可见性。
标签: android listview visibility