2017-06-21 119 views
0

我将数据从ListView传递到另一个ListViewSharedPreference。我可以写物品,并可以删除其中的一项。从ListView中永久删除项目

我删除项目后,我重新启动此页面,我看到我删除的项目。我无法永久删除它。

MainActivity

final DataProvider[] providers = gson.fromJson(jsonurun, DataProvider[].class); 
final List<DataProvider> list = new ArrayList<>(Arrays.asList(providers)); 

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
    @Override 
    public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { 
     final DataProvider dataProvider = (DataProvider) adapterView.getItemAtPosition(i); 
     AlertDialog.Builder builder = new AlertDialog.Builder(Listele1.this); 
     builder.setMessage("Silinsin mi ?") 
       .setCancelable(false) 
       .setPositiveButton("EVET", new DialogInterface.OnClickListener() { 
        @Override 
        public void onClick(DialogInterface dialogInterface, int i) { 
         list.remove(dataProvider); 
         prefAdapter.notifyDataSetChanged(); 
       } 
      }) 
+0

如何设置数据到适配器。 –

+0

https://stackoverflow.com/questions/44620005/i-cannot-delete-item-from-listview在这个链接PrefAdapter –

回答

0

尝试改变

prefAdapter.notifyDataSetChanged(); 

notifyItemRemoved("here, position you has deleted"); notifyItemRangeChanged("here, position you has deleted" ,"your array".size());

0

当您使用SharedPreference传递数据形式的ListView 1〜2的ListView。 使用下面的2行。

final DataProvider[] providers = gson.fromJson(jsonurun, DataProvider[].class); 
final List<DataProvider> list = new ArrayList<>(Arrays.asList(providers)); 

You only remove data from Listview 2 ie: list in your 
case : list.remove(dataProvider); 

And forgot to delete the data from SharedPreference at same time.That's why when restart the page your deleted item is visible again. 


In short try to remove data form SharedPreference as well after performing 

list.remove(dataProvider); 
prefAdapter.notifyDataSetChanged(); 
+0

我不明白。你能用示例代码来解释吗? –