2017-06-21 15 views
0

ListViewからListViewへのデータをSharedPreferenceに渡します。私はアイテムを書くことができ、それらのアイテムを削除することができます。ListViewからアイテムを永久に削除

アイテムを削除した後、このページを再起動すると、削除したアイテムが表示されます。私はそれを永久に取り除くことはできません。 notifyItemRemoved("here, position you has deleted"); notifyItemRangeChanged("here, position you has deleted" ,"your array".size());

+0

どのようにデータをアダプタに設定しますか? –

+0

このリンクのhttps://stackoverflow.com/questions/44620005/i-cannot-delete-item-from-listview PrefAdapter –

答えて

0

のtry変更

prefAdapter.notifyDataSetChanged(); 

あなたはSharedPreferenceを使用してリストビュー2へのデータ形式のリストビュー1を渡していた場合。 以下の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

ため

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

私は非常によく理解できません。サンプルコードで説明できますか? –

関連する問題