我一直在理解如何保存和阅读SharedPreferences。我试图保存四个单独的SharedPreferences,但由于我无法弄清楚如何做,我决定尝试使用一个简单的String。
在此代码中,我尝试在SharedPreferences中创建并保存字符串
Button enrollNewStudent = (Button) findViewById(R.id.enrollStudentButton) ;
enrollNewStudent.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View view){
SharedPreferences prefs = getSharedPreferences(getString(R.string.testing), MODE_PRIVATE);
SharedPreferences.Editor editor = getSharedPreferences(getString(R.string.testing), MODE_PRIVATE).edit();
editor.putString("name", "Dave");
editor.commit();
startActivity(new Intent(MainActivity.this, AddNewStudent.class));
}
});
在接下来的部分中,我尝试阅读SharedPreferences并在第二个活动中设置TextView。
Context context = this;
SharedPreferences sharedPref = getSharedPreferences(getString(R.string.testing),MODE_PRIVATE);
String toPutInTextView = sharedPref.getString(getString(R.string.testing), null);
TextView textView = findViewById(R.id.exampleTextView);
textView.setText(toPutInTextView);
当我运行此应用程序并单击按钮切换到第二个活动时,第二个活动上的TextView为空白。
有人看到这个有问题吗?我一直试图将我需要做的事情从Android开发者网站和其他问题拼凑在一起,但我无法让这个工作。这是一个大学项目。
答案 0 :(得分:1)
问题是:sharedPref.getString(getString(R.string.testing), null)
正在使用字符串getString(R.string.testing)
作为键。但是,您拨打"putString()"
时使用的密钥是" name"。所以你需要使用" name"作为getString()
来电的密钥。
尝试:
String toPutInTextView = sharedPref.getString("name", "<default_value>");