Java 删除项目后如何使用Android-notifyDataSetChanged()?
我搜索了很多类似的问题……他们都说我必须使用类似于以下代码的东西:Java 删除项目后如何使用Android-notifyDataSetChanged()?,java,android,Java,Android,我搜索了很多类似的问题……他们都说我必须使用类似于以下代码的东西: arrayAdapter.notifyDataSetChanged(); 此代码之后:书签。删除(pos) 但您可以看到……在BookMarkActivity类中,不要使用arrayAdapter public class BookMarkActivity extends ActionBarActivity { @Override protected void onCreate(Bundle savedInst
arrayAdapter.notifyDataSetChanged();
此代码之后:书签。删除(pos)代码>
但您可以看到……在BookMarkActivity类中,不要使用arrayAdapter
public class BookMarkActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.message);
// Reading all contacts
final ArrayList<BookMark> bookmarks = (ArrayList<BookMark>) db.getAllBookMarks();
BuildingAdapter adapter = new BuildingAdapter(context);
// ADDED
final ListView lv = (ListView) findViewById(R.id.list_view);
lv.setAdapter(new BookmarkAdapter(this, bookmarks));
lv.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
public boolean onItemLongClick(AdapterView<?> arg0, View arg1,
int pos, long id) {
bookmarks.remove(pos);
return true;
}
});
}
}
公共类书签活动扩展了ActionBarActivity{
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.message);
//读取所有联系人
最终ArrayList书签=(ArrayList)db.getAllBookMarks();
BuildingAdapter=新的BuildingAdapter(上下文);
//增加
最终ListView lv=(ListView)findViewById(R.id.list\u视图);
lv.setAdapter(新书签适配器(这个,书签));
lv.setOnItemLongClickListener(新的AdapterView.OnItemLongClickListener(){
长单击(AdapterView arg0、视图arg1、,
内部位置,长id){
书签。删除(pos);
返回true;
}
});
}
}
我是android新手…但我尝试用以下方法更改代码:
private ArrayAdapter<BookMark> arrayAdapter;
arrayAdapter = new BookmarkAdapter(this, bookmarks);
private ArrayAdapter ArrayAdapter;
arrayAdapter=新书签适配器(此为书签);
但是没有成功!删除一项后不刷新列表视图 ListView显示存储在ArrayList中的一些数据
当元素移除或外接程序ArrayList时,必须告诉列表数据源已更改以显示新数据
这就是notifyDatasetChanged()的作用。它告诉ListView数据已被修改,因此请反映更改的数据
final BookmarkAdapter adapter = new BookmarkAdapter(this, bookmarks);
lv.setAdapter(adapter);
并在移除元件后使用线下
adapter.notifyDataSetChanged();
希望有帮助。只需在按钮/imageView单击侦听器上添加两行即可。
delete.setOnClickListener {
list.removeAt(pos)
notifyItemRemoved(pos)
}
您还可以设置适配器,右键:lv.setAdapter(arrayAdapter)代码>?@karaokyo没有,现在可以工作了。谢谢。