📜  android中的onbackpressed片段传递值 - Java(1)

📅  最后修改于: 2023-12-03 15:29:22.663000             🧑  作者: Mango

Android中的onBackPressed方法

介绍

在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保存它的值。