📅  最后修改于: 2023-12-03 15:29:22.663000             🧑  作者: Mango
在Android中,onBackPressed()方法是Activity类的一个回调方法,它在用户按下设备的返回键时执行。默认情况下,当用户按下返回键时,Activity会被销毁并删除出栈,然后重新加载上一个Activity。但是,如果你想改变返回键的默认行为,可以重写onBackPressed()方法,添加你的逻辑代码。
public void onBackPressed()
该方法没有返回值。
以下是一个示例,演示如何在onBackPressed()方法中传递值:
public class MainActivity extends AppCompatActivity {
private String data = "";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button = findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(MainActivity.this, SecondActivity.class);
startActivityForResult(intent, 1);
}
});
}
@Override
public void onBackPressed() {
Intent resultIntent = new Intent();
resultIntent.putExtra("data", data);
setResult(RESULT_OK, resultIntent);
super.onBackPressed();
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 1 && resultCode == RESULT_OK) {
this.data = data.getStringExtra("data");
}
}
}
在MainActivity中,我们有一个按钮,当用户点击该按钮时,我们启动SecondActivity并等待它返回一个值。在SecondActivity中,我们有一个文本框,用户可以在其中输入一些文本,当用户在SecondActivity按下返回键时,我们把这个文本值返回给MainActivity。我们通过重写onBackPressed()方法在MainActivity中接收这个返回值。然后,我们用Intent在MainActivity的onBackPressed()方法中回传值。在onActivityResult()方法中,我们接收来自SecondActivity的数据,并在MainActivity保存它的值。