我正在制作一个测验应用程序,它通过在第一个活动中取名来欢迎用户,这就是我到目前为止所做的。现在我想在ResultActivity
中打印用户名,如何在同一个项目中的两个不同的类中添加一个名称?
Intent intent = new Intent(name.this, Main.class);
intent.putExtra("name", et.getText().toString());
startActivity(intent);
这是在Main
类中引用名称,我也希望Result
活动中的名称。
由于
答案 0 :(得分:2)
最简单的方法是将用户名作为键和值存储在共享首选项文件中。
SharedPreferences - 正确的方式
SharedPreferences提供了在设备存储上存储持久简单值的简便方法。我们经常使用它来存储一些用户或应用程序的首选项,并在许多地方之间共享 - 比如多个活动。 (在您的情况下,您希望存储用户的名称并在多个活动之间共享)。
在Android中使用SharedPreferences时,基本上可以执行两项主要操作。那就是商店数据和加载数据。你应该:
SharedPreferences
对象。Editor
个实例。 Editor
对象将帮助您处理已存储的数据。putString
,putBoolean
方法存储一对密钥/值。只需使用此自定义方法保存用户名称:
private void savePreferences(String key, String value) {
SharedPreferences.Editor editor = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE).edit();
editor.putString(key, value);
editor.commit();
}
使用示例:
savePreferences("name", et.getText().toString());
现在,您可以根据需要在任何活动中检索用户名。 (Result
,Main
...)
SharedPreferences prefs = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE);
String name = prefs.getString("name", null);
希望我能帮到你。
快乐编码:D
答案 1 :(得分:1)
为什么不利用SharedPreferences? 你可以在这里找到更多: https://stackoverflow.com/a/21055784/754783
答案 2 :(得分:1)
您可以将另一个意图从Main类发送到ResultActivity
String name = getIntent().getStringExtra("name");// get the string from previous activity
//pass the intent to the ResultActivity
Intent intent = new Intent(Main.this, ResultActivity.class);
intent.putExtra("name", name);
startActivity(intent);
您可以执行的另一种方法是将名称保存在SharedPreference中。供参考,请点击http://www.tutorialspoint.com/android/android_shared_preferences.htm
答案 3 :(得分:0)
在您的结果活动中: 在onCreate中,您可以使用
获取名称String name = getIntent().getStringExtra("name", "A_Default_String");