【发布时间】:2020-02-04 07:24:16
【问题描述】:
我正在使用两个活动,MainActivity 和 SubActivity。
MainActivity.class
public class MainActivity extends AppCompatActivity {
Button button;
@Override
protected void onCreate() {
...
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent sub = new Intent(this, SubActivity.class);
sub.putExtra("name", "a");
startActivity(sub);
}
}
}
}
子活动
public class SubActivity extends AppCompatActivity {
EditText text;
@Override
protected void onCreate() {
...
text.setText(getIntent().getStringExtra("name"));
}
@Override
public void onBackPressed() {
super.onBackPressed();
}
}
在这种情况下,如果我在 SubActivity 中更改 EditText 中的文本,我想在 SubActivity 中按下后退按钮时将更改的文本数据发送到 MainActivity(这意味着 SubActivity onDestroy())。我不想在 SubActivity 中像这样制作第二个 MainActivity。
@Override
public void onBackPressed() {
Intent intent = new Intent (this, MainActivity.class);
intent.putExtra("name", text.getText().toString());
startActivity(intent);
}
当 SubActivity 从 Activity 堆栈中移除时,有什么方法可以发送文本数据?
【问题讨论】:
-
您可以使用 sharedPref 来保存数据。并在主要活动中使用它
-
看看这个来自谷歌的好文档,它深入地解释了一切developer.android.com/training/basics/intents/result
标签: android android-intent onbackpressed