我使用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();
}
})
答案 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();