如何从Android应用程序中的sharedPreferences获取价值

时间:2013-11-29 16:06:08

标签: android sharedpreferences

我尝试制作一个存储我们名字的应用程序。因此,在我们第一次运行此应用程序时,它会询问您的姓名(让我们在“activityOne”上说出来)。然后将其写在sharedPreferences上。 因此,当我们下次运行它时,application(activityOne)将读取sharedPreferences。如果它为null,它会要求你写下你的名字。但如果它有你的名字,它将进入下一个活动(让我们说它是“activityTwo”)。所以这段代码在“activityOne”中的oncreate():

 SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this);
    if (sp.getString("name", null).equals("false")
            || sp.getString("name", null) != null) {
        new Handler().postDelayed(new Runnable()
        {
          public void run()
          {
              activityOne.this.startActivity(new Intent(activityOne.this, activityTwo.class));
          }
        }
        , 20L);
    };

所以当我下次运行应用程序时。我不需要重新输入我的名字。它会进入下一个活动。

1 个答案:

答案 0 :(得分:1)

设置值如:

 SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext());
    Editor editor = prefs.edit();
    editor.putString("UserName", "userName);
    editor.commit();

并获得如下值:

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext());
prefs.getString("UserName","");

你在问逻辑,你需要努力。不管怎么试试

private SharedPreferences dhj;
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    dhj = this.getSharedPreferences("DHJ", MODE_WORLD_READABLE);
    if(dhj.getString("username", null) != null) {
        setContentView(R.layout.main);
            // do some stuff...
    }
    else {
            setContentView(R.layout.login);
            username = (EditText) findViewById(R.id.username);
            password = (EditText) findViewById(R.id.password);
                    loginButton = (Button) findViewById(R.id.loginButton);

            loginButton.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                    SharedPreferences.Editor editor = dhj.edit();
                    editor .putString("username", username.getText().toString());
                    editor .putString("password", password.getText().toString());
                    editor.commit(); 
                    setContentView(R.layout.main);
                }
            }); 

    }
}