kav*_*tha 58 android android-listview
有人可以给我一个删除所有ListView项目并替换为新项目的示例代码吗?
我尝试更换适配器项而没有成功.我的代码是
populateList(){
results //populated arraylist with strings
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, results);
listview.setAdapter(adapter);
adapter.notifyDataSetChanged();
listview.setOnItemClickListener(this);
}
// now populating list again
repopulateList(){
results1 //populated arraylist with strings
ArrayAdapter<String> adapter1 = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, results1);
listview.setAdapter(adapter1);
adapter1.notifyDataSetChanged();
listview.setOnItemClickListener(this);
}
Run Code Online (Sandbox Code Playgroud)
这里的repopulateList()方法将添加到ListView项,但它不会删除/替换所有ListView项.
esh*_*arp 74
您将需要remove()来自适配器对象的项目,然后只需notifyDatasetChanged()在适配器上运行,任何人ListView都应该(应该)回收并自行更新.
这是s的简短活动示例AlertDialog:
adapter = new MyListAdapter(this);
lv = (ListView) findViewById(android.R.id.list);
lv.setAdapter(adapter);
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> a, View v, int position, long id) {
AlertDialog.Builder adb=new AlertDialog.Builder(MyActivity.this);
adb.setTitle("Delete?");
adb.setMessage("Are you sure you want to delete " + position);
final int positionToRemove = position;
adb.setNegativeButton("Cancel", null);
adb.setPositiveButton("Ok", new AlertDialog.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
MyDataObject.remove(positionToRemove);
adapter.notifyDataSetChanged();
}});
adb.show();
}
});
Run Code Online (Sandbox Code Playgroud)
Lab*_*lan 24
我想如果你添加以下代码,它将工作
listview.invalidateViews();
Run Code Online (Sandbox Code Playgroud)
要删除项目,只需从我们传递给适配器的arraylist中删除该项目,然后执行listview.invalidateViews();
此操作将刷新列表视图
Jan*_*usz 19
您可以使用
adapter.clear()
Run Code Online (Sandbox Code Playgroud)
这将删除您的第一个适配器的所有项目,然后您可以设置另一个适配器或重用适配器并将项目添加到旧适配器.如果你使用
adapter.add()
Run Code Online (Sandbox Code Playgroud)
要将数据添加到列表,您不需要调用notifyDataSetChanged
小智 15
int count = adapter.getCount();
for (int i = 0; i < count; i++) {
adapter.remove(adapter.getItem(i));
}
Run Code Online (Sandbox Code Playgroud)
然后打电话 notifyDataSetChanged();
从适配器中删除它,然后通知arrayadapter数据集已更改.
m_adapter.remove(o);
m_adapter.notifyDataSetChanged();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
206028 次 |
| 最近记录: |