Android 从ListView中永久删除项目

Android 从ListView中永久删除项目,android,Android,我使用SharedReference将数据从一个ListView传递到另一个ListView。我可以写入项目,也可以删除其中的一项 删除项目后,我重新启动此页面,并看到我删除的项目。我不能永久移除它 main活动 final DataProvider[] providers = gson.fromJson(jsonurun, DataProvider[].class); final List<DataProvider> list = new ArrayList<>(Arr

我使用
SharedReference
将数据从一个
ListView
传递到另一个
ListView
。我可以写入项目,也可以删除其中的一项

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

main活动

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();
                 }
            })
final DataProvider[]providers=gson.fromJson(jsonRun,DataProvider[].class);
最终列表=新的ArrayList(Arrays.asList(providers));
setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
公共无效onItemClick(AdapterView AdapterView、View视图、int i、long l){
最终数据提供者DataProvider=(数据提供者)adapterView.getItemAtPosition(i);
AlertDialog.Builder=新建AlertDialog.Builder(列表1.this);
builder.setMessage(“Silinsin mi?”)
.setCancelable(错误)
.setPositiveButton(“EVET”,新的DialogInterface.OnClickListener()对话框){
@凌驾
公共void onClick(DialogInterface,inti){
删除(数据提供者);
prefAdapter.notifyDataSetChanged();
}
})
尝试更改

 prefAdapter.notifyDataSetChanged();
对于
notifyItemRemoved(“此处,您已删除的位置”);

notifyItemRangeChanged(“此处,您已删除的位置”,“您的数组”.size());

当您使用SharedReference将数据从ListView 1传递到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();
final DataProvider[]providers=gson.fromJson(jsonRun,DataProvider[].class);
最终列表=新的ArrayList(Arrays.asList(providers));
您只能从列表视图2中删除数据,即:列表中的数据
案例:list.remove(数据提供程序);
并且忘了同时从SharedReference中删除数据。这就是重新启动页面时删除的项目再次可见的原因。
简言之,在执行以下操作后,尝试删除数据表单SharedReference
删除(数据提供者);
prefAdapter.notifyDataSetChanged();

您是如何将数据设置到适配器的。?在这个链接中,PrefAdapter我不能很好地理解。您能用示例代码解释一下吗?