我有3个名为activity1
,activity2
,activity3
的班级。我可以使用以下putExtra
方法将字符串值从activity1
传递到activity2
。
Intent intent = new Intent(activity1.this, activity2.class);
intent.putExtra("message", message); startActivity(intent);
当我在activity3
中需要相同的值时,我可以像以前一样使用相同的值。如果我想在从activity3
开始的另一个活动中使用相同的值。当我的活动流程像
activity1
>activity2
>activity3
>activity4
可以同样使用吗?
我觉得这不是一个好习惯。还有其他解决方案吗?请帮帮我
答案 0 :(得分:1)
您可以使用SharedPreferences存储和检索信息:
待店:
SharedPreferences pref = getSharedPreferences("YourPref", MODE_PRIVATE);
SharedPreferences.Editor editor = pref.edit();
editor.putString("message", message);
editor.commit();
然后在您想要的活动中检索它:
SharedPreferences pref = getSharedPreferences("YourPref", MODE_PRIVATE);
String value = pref.getString("message", "");
答案 1 :(得分:0)
我们可以使用静态方法将数据从一个活动转移到另一个活动,可以这样做,在activity1
public class Activity1 extends Activity {
static Activity1 INSTANCE;
String data="FirstActivity";
@Override
public void onCreate(Bundle savedInstanceState) {
INSTANCE=this;
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
public static First getActivityInstance()
{
return INSTANCE;
}
public String getData()
{
return this.data;
}
}
可以像activity4
一样检索它,
public class Activity4 extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main1);
String data=First.getActivityInstance().getData();
}
}