我有一个ListView,其中包含多个用户输入复选框。我有两个按钮添加和删除分别添加和删除列表项。 我正在使用BaseAdapter for ListView并使用notifyDataSetChanged()
通知ListView我随时添加/删除项目。列表中的用户输入被清除。我认为这是因为该列表每次都在重建。在listView中添加/删除项目时如何保持用户输入的任何想法?
答案 0 :(得分:0)
使用recyclerview,您可以使用许多选项,例如notifyDataInserted,notifyDataRemoved,插入范围,删除范围等。
你可以找到一个很好的例子here
答案 1 :(得分:0)
我认为你的程序正在再次读取getView()函数。看到下面的代码,以避免它,它是复制粘贴,但它可能会给你一些想法 -
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
convertView = mInflater.inflate(R.layout.list_item_icon_text, null);
holder = new ViewHolder();
holder.text = (TextView) convertView.findViewById(R.id.text);
holder.icon = (ImageView) convertView.findViewById(R.id.icon);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.text.setText(DATA[position]);
holder.icon.setImageBitmap((position & 1) == 1 ? mIcon1 : mIcon2);
return convertView;
}
您可以参考此链接获取更多信息-0 Android, how to stop reading getView() function again, if the content is already downloaded in the ListView