2017-06-21 132 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

我不明白。你能用示例代碼來解釋嗎? –