这是一个简单的示例,演示如何在两个Activity之间传递数据和返回结果。

在第一个Activity中,我们有一个按钮,点击它将启动第二个Activity,并传递一个字符串参数。在第二个Activity中,我们有一个文本框,用户可以输入一些文本,并在点击“完成”按钮时返回该文本到第一个Activity。第一个Activity将显示返回的文本。

MainActivity.java

public class MainActivity extends AppCompatActivity {

    private static final int REQUEST_CODE = 1;
    private TextView textView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        textView = findViewById(R.id.textView);

        Button button = findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(MainActivity.this, SecondActivity.class);
                intent.putExtra("message", "Hello from MainActivity!");
                startActivityForResult(intent, REQUEST_CODE);
            }
        });
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        if (requestCode == REQUEST_CODE && resultCode == RESULT_OK) {
            String message = data.getStringExtra("message");
            textView.setText(message);
        }
    }
}

在这个Activity中,我们定义了一个常量REQUEST_CODE来标识请求,一个TextView用于显示返回的文本,以及一个按钮。当按钮被点击时,我们创建一个Intent来启动第二个Activity,并传递一个字符串参数“message”。我们使用startActivityForResult方法来启动Activity,因为我们希望在第二个Activity完成后接收结果。

在onActivityResult方法中,我们检查requestCode和resultCode,以确保它们与我们发送请求时相同。如果一切顺利,我们从Intent中获取返回的字符串值,并将其设置到TextView中。

SecondActivity.java

public class SecondActivity extends AppCompatActivity {

    private EditText editText;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);

        editText = findViewById(R.id.editText);

        Button button = findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String message = editText.getText().toString();
                Intent intent = new Intent();
                intent.putExtra("message", message);
                setResult(RESULT_OK, intent);
                finish();
            }
        });

        String message = getIntent().getStringExtra("message");
        Toast.makeText(this, message, Toast.LENGTH_SHORT).show();
    }
}

在这个Activity中,我们定义了一个EditText来输入文本,并在点击“完成”按钮时返回文本。我们使用setResult方法来设置返回结果,并在结束Activity之前调用finish方法。为了显示从第一个Activity传递的参数,我们使用getIntent方法获取Intent并从中获取“message”参数,并使用Toast来显示它。

这就是整个过程的简单示例。当用户点击第一个Activity中的按钮时,会启动第二个Activity,并在其中输入一些文本。当用户点击“完成”按钮时,文本将返回到第一个Activity,并在TextView中显示。


原文地址: https://www.cveoy.top/t/topic/bI7K 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录