【发布时间】:2017-07-26 06:45:25
【问题描述】:
我已取消选中复选框(每个项目)以将其删除。我正在使用 HashSet 概念来共享首选项。我想将 arraylist 值从一页传递到另一页。我做什么是我的错误有人帮助我。
我的代码是:
adapterpage.java
public static final String MY_PREFS_NAME = "";
@Override
public void onClick(View view) {
boolean isChecked = mainHolder.chekenitem.isChecked();
// arr=getResources().getStringArray( mainHolder.txtenimgid.getText().toString());
// boolean isChecked = mainHolder.chekenitem.isChecked();
int i;
String itemId1 = mainHolder.txtenimgid.getText().toString();
SharedPreferences prefs=view.getContext().getSharedPreferences(MY_PREFS_NAME,Context.MODE_PRIVATE);
SharedPreferences.Editor edit=prefs.edit();
Set<String> set = new HashSet<String>();
try {
if (isChecked) {
addmembers.add(itemId1);
for (j = 0; j < addmembers.size(); j++) {
set.addAll(addmembers);
edit.putStringSet("yourKey", set);
edit.commit();
Toast.makeText(view.getContext(), "Clicked on Checkbox addmembers[pos] : " + addmembers.get(j) + " Item Id is " + itemId1
, Toast.LENGTH_LONG).show();
}
// editor.putString("key_name",itemId );
// editor.apply();
// }
} else {
for(int k=0;k<=addmembers.size();k++){
if(addmembers.get(k).equals(itemId1)){
// set.remove(addmembers);
addmembers.remove(k);
edit.remove(addmembers.get(k));
edit.commit();
break;
}
}
【问题讨论】:
-
edit.remove("yourKey");edit.commit();
-
当你想删除 sharedpreferences 值时输入相同的键名
-
我更改了上面的代码,我有 3 个数组列表,但我取消选中第 2 个值,返回值为 null
标签: java android arraylist fragment sharedpreferences