共享首选项不是由程序创建的

时间:2013-02-11 09:19:08

标签: android sharedpreferences

在以下程序中,我要做的是: 我想在共享偏好

中存储名称列表

当应用首次启动时,它应该按名称“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检查了它。

1 个答案:

答案 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);
相关问题