在以下程序中,我要做的是: 我想在共享偏好
中存储名称列表当应用首次启动时,它应该按名称“profile_names”
创建共享首选项随后,当应用程序下次启动时,它应该检查共享首选项是否存在 如果它存在,则应该从首选项中获取列表并将其提供给列表视图。
但它不起作用.....我哪里出错?
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.profilespage);
File f= new File("/data/data/neeraj.cardXchange.Basic/shared_prefs/profile_names");
if(f.exists()){
Toast.makeText(this, "prefernce already created", Toast.LENGTH_LONG).show();
profile_names= getSharedPreferences("profile_names", MODE_WORLD_READABLE);
try {
myarraylist = getArrayList(mycontext, key);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
else{
Toast.makeText(this, "prefernce created now", Toast.LENGTH_LONG).show();
profile_names= getSharedPreferences("profile_names", MODE_WORLD_READABLE);
}
String [] name_list = myarraylist.toArray(new String[myarraylist.size()]);
ArrayAdapter adapter = new ArrayAdapter <String>(this, R.layout.textview, name_list);
setListAdapter(adapter);
}
在这里,我使用toast消息来检查事情是如何进行的 每次来自我的“else”的toast消息被执行并且没有创建共享首选项 我使用DDMS检查了它。
答案 0 :(得分:1)
您必须提交创建的共享首选项,首先在共享首选项中存储值,然后提交它以便我可以保留可用于其他活动的值。这是创建和访问共享首选项的小例子
创建:
SharedPreferences prefs = getSharedPreferences("UMSPreferences",MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
editor.putString("UserId", login);
editor.putString("password", password);
editor.commit();
访问
String userid = getSharedPreferences("UMSPreferences",MODE_PRIVATE).getString("UserId", login);
String paswrd = getSharedPreferences("UMSPreferences",MODE_PRIVATE).getString("password", password);