0

在下面的程序中,我想做的是:我想在共享偏好中存储一个名称列表

当应用程序第一次启动时,它应该创建一个名为“profile_names”的共享首选项

随后,当应用程序下次启动时,它应该检查 sharedpreferences 是否存在,如果它存在应该从首选项中获取列表并将其提供给列表视图。

但它不起作用.....我哪里出错了?

 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 检查了它。

4

1 回答 1

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);
于 2013-02-11T09:48:04.487 回答