如何将变量发送到另一个类并保存并将其发送回另一个类

时间:2014-08-20 05:05:01

标签: java android file-io

所以我要做的就是采取int" inc"和.putPutExtra(" Inc",inc)到我的第二个班叫做"设置"然后通过" SharedPreferences"保存它然后当用户按下按钮返回我的主类时,它会自动将其加载到int

下面是用于将其从MainActivity

发送到设置类的代码
int inc = 0;

Intent GoToSettings = new Intent(getApplicationContext(), settings.class);
GoToSettings.putExtra("Inc", inc);
startActivity(GoToSettings)

继承了接收它的代码

Intent intent = getIntent();
Inc = intent.getIntExtra("Inc", 10);

继承了保存" Inc"

的代码
 SharedPreferences Saveinc=getSharedPreferences("IncSave", Context.MODE_PRIVATE);
                SharedPreferences.Editor SaveIncE=Saveinc.edit();
                SaveIncE.putInt("IncSave", Inc);
                SaveIncE.commit();

表示在保存

之后收到int的代码
    int inc = 1;

    Intent GoToMain = getIntent();
    inc = GoToMain.getIntExtra("IncSave", 1);


SharedPreferences GetSavedinc=getSharedPreferences("IncSave", Context.MODE_PRIVATE);
int  IncSave=GetSavedUpCount.getInt("IncSave", 1);
inc=IncSave;

我不是它不是最优秀的布局,但我是新的并且还没有真正学会了syntex。 即时通讯也是网站的新手,所以如果我不喜欢一个规则,我很抱歉。

3 个答案:

答案 0 :(得分:0)

如果你的int' inc'无论如何,最终都会在你的SharedPreferences中结束,你可以跳过将它传递给另一个类,然后将它写入主活动的prefs中。

当您返回主活动时,您可以在onCreate / onResume期间从共享首选项中读取它,并且您可以在设置类的构造函数中从共享首选项中读取它。

答案 1 :(得分:0)

在上一个您只想要使用SharedPreference值的活动中,只需使用它。

//int inc = 1;
//Intent GoToMain = getIntent();                     //Comment all this..
//inc = GoToMain.getIntExtra("IncSave", 1);


SharedPreferences GetSavedinc=getSharedPreferences("IncSave", Context.MODE_PRIVATE);
int  IncSave=GetSavedUpCount.getInt("IncSave", 1);
Log.v("My Value",IncSave+"");

答案 2 :(得分:0)

如果要在两个活动之间发送一些数据,则不应使用共享pref。 以下是首选方法: 将数据从Activity1发送到Activity2:

Intent intent = new Intent();
intent.putExtra("numberFromActivity1", 122);
startActivityForResult(intent, REQUEST_CODE);

在Activity2中,使用以下代码阅读:

    Intent intent = getIntent();
    int inc = intent.getIntExtra("numberFromActivity1", 0); // 122

将数据从Activity2发送到Activity1:您可以在onDestroy()或onBackpressed()方法中设置结果。

Intent intent = new Intent();
intent.putExtra("numberFromActivity2", 221);
setResult(RESULT_OK, intent);
finish(); // Finish second activity

现在在Activity1中,您可以在onActivityResult()方法中获取此数据:

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
     if(requestCode == REQUEST_CODE) {
         int numberFromActivity2 = data.getIntExtra("numberFromActivity2" , 0); // 221
     }
}