下面的代码检索多个选定的联系人并以ArrayList的形式存储它,但是一旦我关闭应用程序并打开选定的联系人列表就被删除了,所以应该存储数据,这样一旦我关闭并打开应用程序数据在数据被删除之前一直存在。任何人都可以帮助我使用共享首选项存储ArrayList值。
$(document).ready(function() {
$(".slidingDiv").hide();
$(".show_hide").show();
$('.show_hide').click(function() {
var isvisible = $(this).next('.slidingDiv').is(':visible');
if ( isvisible ) {
$(this).next('.slidingDiv').hide();
} else{
$(this).next('.slidingDiv').show();
}
});
});
}
以下代码是ArrayList,它保存所选的联系人值。
private void chooseContact() {
Intent intentContactPick = new Intent(MainActivity.this,ContactsPickerActivity.class);
MainActivity.this.startActivityForResult(intentContactPick,CONTACT_PICK_REQUEST);
}
@Override
public void onActivityResult(int requestCode,int resultCode,Intent data){
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == CONTACT_PICK_REQUEST && resultCode == RESULT_OK){
ArrayList<Contact> selectedContacts = data.getParcelableArrayListExtra("SelectedContacts");
String display="";
for(int i=0;i<selectedContacts.size();i++){
display += (i+1)+". "+selectedContacts.get(i).toString()+"\n";
}
contactsDisplay.setText("Selected Contacts : \n\n"+display);
}
}
答案 0 :(得分:1)
您有不同的选择。
使用Gson库将数组或对象转换为Json,并以json格式将数据存储为String。
保存;
{"message":"success"}
读取;
SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(context);
Editor editor = sharedPrefs.edit();
Gson gson = new Gson();
String json = gson.toJson(arrayList);
editor.putString(TAG, json);
editor.commit();
使用import java.lang.reflect.Type来避免错误。
答案 1 :(得分:0)
看到这一点。
商品强>
public List<Contact> getData(Context context){
SharedPreferences preferences=context.getSharedPreferences("contact_prefs",Context.MODE_PRIVATE);
Gson gson = new Gson();
return gson.fromJson(preferences.getString("data",null), new TypeToken<List<Photo>>() {
}.getType());
}
<强>读取强>
CREATE KEYSPACE IF NOT EXISTS import_test WITH REPLICATION =
{ 'class' : 'SimpleStrategy', 'replication_factor' : 1 };
CREATE TABLE transactional_data (
job varchar,
client varchar,
run int,
chunk int,
mdh_id uuid,
gtin varchar,
sender varchar,
receiver varchar,
quantity int,
ta_id varchar,
type varchar,
ts timestamp,
add_info map<text, text>,
PRIMARY KEY ((job, client, run, chunk), mdh_id));
答案 2 :(得分:0)
Ranjith KP答案很棒。别忘了添加依赖性:
compile 'com.google.code.gson:gson:2.8.0'
对于上下文,你可以传递你的活动(只需使用&#39;这个&#39;代替)。
标签 - 这只是一个字符串,添加
String TAG = "tag";
关于您活动的成员。
答案 3 :(得分:0)
要将键值对保存到共享首选项:
SharedPreferences sharedPreference = context.getSharedPreferences(PREFERENCE_NAME, Context.MODE_PRIVATE);
Editor editor = sharedPreference.edit();
editor.putString(key, value);
editor.apply();
context:传递调用上下文或Base Context或Application Context(片段中的 getContext()或Activity中的 getBaseContext())