【发布时间】:2015-08-18 12:06:58
【问题描述】:
为什么当我删除数据库并删除 ListView 时,ArrayList 中的数据没有被删除而是变为 null。这是我向 ArrayList 添加数据时的代码:
List<FormPermohonanKredit> list = datasourcePK.getAllFormPK();
final ListIterator<FormPermohonanKredit> li = list.listIterator();
final String[] ListNamaNasabah = new String[list.size()];
int i = 0;
while(li.hasNext()){
FormPermohonanKredit form = li.next();
String Nama = form.getInfoPokok() != null ? form.getInfoPokok().getNama() : "null";
ListNamaNasabah[i] = Nama;
i++;
}
final ArrayList<Long> userList = new ArrayList<Long>();
userList.addAll(Arrays.asList(ListNamaNasabah));
listAdapter = new ArrayAdapter<String>(this, R.layout.activity_row_list, userList);
mainListView.setAdapter(listAdapter);
这是我删除数据库和删除 ListView 的方法:
IDTable = IDList.get(position);
MySQLiteHelper db=new MySQLiteHelper(getApplicationContext());
db.delete("" + IDTable);
userList.remove(position);
listAdapter.notifyDataSetChanged();
我猜在将“null”更改为不同的文本后,它也会发生变化,但没有任何变化,它始终为空。删除前后的这个 ArrayList :
- 删除前
- 删除后
我想清除我选择位置的 ArrayList,而不是更改为 null。
【问题讨论】:
-
重新加载页面.. 再次加载内容!试试
-
U 正在创建和设置适配器再次执行一次,稍后在数据更改时执行 notifyDataSetChanged()
-
我相信你的问题应该很简单。让我明白,在代码 userList.addAll(...) 之后,您的 ID = 3,Nama = Wisnu,对吗?在代码 userList.remove(position) 之后,你得到 ID = 0,Nama = null,对吗?而且该代码只执行一次,对吗?
-
你的命名习惯听起来像马来语或印尼语:-),对吗?
-
试试这个调试...在你的代码 userList.remove() 之前和之后打印 userList.size(),只是为了看看你在 ArrayList 中有多少元素。对于打印,您可以使用 Log.d()。了解 (ngerti) 吗?
标签: java android listview arraylist android-listview