从第二个活动按下后退按钮时返回Main片段会使数据保持相同的片段

时间:2017-09-06 12:20:30

标签: android android-layout android-fragments

当我在活动中单击后退按钮同时将输入的数据保存在同一个片段中时,如何返回主片段?在下面的代码中,我将从第二个活动中调用它。

finish()

要从我的第一个活动回到片段,我正在调用 aaa | bbb | ccc |ddd | eee -------------------------------------- 100 | xxxx | 123 |yyy|2017 100 | yyyy | 345 |zzz|2017 200 | rrrr | 500 |qqq|2017 300 | uuuu | 200 |ttt|2017 200 | iiii | 500 |ooo|2017 并且它正常工作并保留数据。我希望这与从第二个活动回到片段一样工作。

1 个答案:

答案 0 :(得分:0)

在转到下一个活动之前,您可以将数据存储在片段类

中的SharedPreferences
SharedPreferences preferences;
@Override
public boolean onOptionsItemSelected(MenuItem item) {

    // handle arrow click here
    if (item.getItemId() == android.R.id.home) {
        if(fromString.equalsIgnoreCase("second")){
            //finish();
            preferences = getContext().getSharedPreferences("my_prefs", 0);
            SharedPreferences.Editor editor = preferences.edit();
            editor.putBoolean("pause", false);
            editor.apply();
            Intent intent = new Intent(getApplicationContext(),MainActivity.class);
            intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
            startActivity(intent);
        }else if(fromString.equalsIgnoreCase("first")){

            finish(); // close this activity and return to preview activity (if there is any)

        }
    }
    return super.onOptionsItemSelected(item);
}

并且在onCreate()方法中,您可以检索

之类的值
@Override
public void onCreate(Bundle savedInstanceState) {
    preferences = getContext().getSharedPreferences("my_prefs", 0);
    boolean pause = preferences.getBoolean("pause", false);
}