如何将值从一个活动传递到android中的最后一个活动

时间:2017-10-12 20:34:30

标签: android

我有3个名为activity1activity2activity3的班级。我可以使用以下putExtra方法将字符串值从activity1传递到activity2

Intent intent = new Intent(activity1.this, activity2.class); 
intent.putExtra("message", message); startActivity(intent);

当我在activity3中需要相同的值时,我可以像以前一样使用相同的值。如果我想在从activity3开始的另一个活动中使用相同的值。当我的活动流程像

  

activity1> activity2> activity3> activity4

可以同样使用吗?

我觉得这不是一个好习惯。还有其他解决方案吗?请帮帮我

2 个答案:

答案 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();
      }
 }