永久删除ListView

时间:2017-06-21 17:53:46

标签: android

我使用ListView将数据从ListView传递到另一个SharedPreference。我可以写项目,并可以删除它们的项目。

删除项目后,我重启此页面,看到删除的项目。我不能永久删除它。

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();
                 }
            })

2 个答案:

答案 0 :(得分:0)

尝试更改

 prefAdapter.notifyDataSetChanged();

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

答案 1 :(得分:0)

使用SharedPreference将ListView 1中的数据传递给ListView 2时。     使用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();