Android 如何在共享首选项中存储字符串数组?
如何在SharedReferences中存储字符串数组?请给我一个示例代码,用于存储数组名称并在另一个活动中检索它。提前感谢不支持阵列。但是,您可以存储一个集合Android 如何在共享首选项中存储字符串数组?,android,Android,如何在SharedReferences中存储字符串数组?请给我一个示例代码,用于存储数组名称并在另一个活动中检索它。提前感谢不支持阵列。但是,您可以存储一个集合 SharedPreferences prefs = parent.getContext().getSharedPreferences( "com.example.app", Context.MODE_PRIVATE); Set<String> values = new HashSet&
SharedPreferences prefs = parent.getContext().getSharedPreferences(
"com.example.app", Context.MODE_PRIVATE);
Set<String> values = new HashSet<String>();
values.add("value 1");
values.add("value 2");
prefs.edit().putStringSet("myKey", values).commit();
SharedReferences prefs=parent.getContext().getSharedReferences(
“com.example.app”,Context.MODE_PRIVATE);
Set values=新的HashSet();
价值。增加(“价值1”);
价值。增加(“价值2”);
prefs.edit().putStringSet(“myKey”,values.commit();
让我试着帮你
首先,在要使用SharedReferences的活动中设置这些类变量
public static String MY_PREFS = "MY_PREFS";
private SharedPreferences mySharedPreferences;
int prefMode = Activity.MODE_PRIVATE;
然后像这样存储字符串值
SharedPreferences.Editor editor = mySharedPreferences.edit();
editor.putString("key1", "value1");
editor.putString("key2", "value2");
editor.putString("key3", "value3");
editor.commit(); // to persist the values between activities
最后,要在另一个活动中访问SharedReference,请使用
mySharedPreferences = getSharedPreferences(MY_PREFS, prefMode);
String string1 = mySharedPreferences.getString("key1", null);
String string2 = mySharedPreferences.getString("key2", null);
希望这对你有点帮助。第一个活动
public class MainActivity extends ActionBarActivity {
private Button button;
private SharedPreferences preferences;
private String[] name = {"aa", "bb", "cc"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button=(Button)findViewById(R.id.button1);
preferences=getSharedPreferences("testarray", MODE_PRIVATE);
for(int i=0;i<3;i++)
{
SharedPreferences.Editor editor=preferences.edit();
editor.putString("str"+i, name[i]);
editor.commit();
}
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(MainActivity.this,Secondact.class));
}
});
}
}
公共类MainActivity扩展了ActionBarActivity{
私人按钮;
私人共享参考偏好;
私有字符串[]名称={“aa”、“bb”、“cc”};
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
按钮=(按钮)findViewById(R.id.button1);
首选项=GetSharedReferences(“testarray”,模式\私有);
对于(int i=0;i请将您尝试过的代码输入我不知道,请给出您的answers@SimonChius:仅供参考:如果你不发布你尝试过的代码,你会得到很多反对票。我个人不会对新来者投反对票,因为我知道你们还不熟悉发布规则和指南。我想每个新来者都应该d阅读规则@ChuongPhamcan您能告诉我如何检索设置值=prefs.getStringSet(“myKey”);当我使用此代码检索数据getStringSet(String)时,类型SharedReferences中的方法getStringSet(String,Set)不适用于参数(String)只有检索集合的键。setStringSet将集合作为参数来设置新值。getStringSet(String,set)没有意义。该怎么办?对不起,老兄。我要的是字符串数组对不起,我以前从未在SharedReferences中使用过数组。我想你应该看看其他答案。你可以使用字符串集。但它要求最小API级别为11。
public class Secondact extends ActionBarActivity {
private Button button;
private SharedPreferences preferences;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button) findViewById(R.id.button1);
preferences = getSharedPreferences("testarray", MODE_PRIVATE);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
for(int i=0;i<3;i++)
{
Log.d("aa", preferences.getString("str"+i, " "));
}
}
});
}
}
public class MainActivity extends ActionBarActivity {
private Button button;
private SharedPreferences preferences;
private String[] name = {"aa", "bb", "cc"};
Set<String> values = new HashSet<String>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button=(Button)findViewById(R.id.button1);
preferences=getSharedPreferences("testarray", MODE_PRIVATE);
for(int i=0;i<3;i++)
{
values.add(name[i]);
}
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
for(int i=0;i<3;i++)
{
SharedPreferences.Editor editor=preferences.edit();
editor.putStringSet("str", values);
editor.commit();
}
startActivity(new Intent(MainActivity.this,Secondact.class));
}
});
}
}
public class Secondact extends ActionBarActivity {
private Button button;
private SharedPreferences preferences;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button) findViewById(R.id.button1);
preferences = getSharedPreferences("testarray", MODE_PRIVATE);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Set<String> values = preferences.getStringSet("str", null);
String[] name = values.toArray(new String[values.size()]);
for (int i = 0; i < values.size(); i++) {
Log.d("aa", name[i]);
}
}
});
}
}