我尝试制作一个存储我们名字的应用程序。因此,在我们第一次运行此应用程序时,它会询问您的姓名(让我们在“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);
};
所以当我下次运行应用程序时。我不需要重新输入我的名字。它会进入下一个活动。
答案 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);
}
});
}
}