从第一个Activity 传递参数到第二个Activity 再将第二个Activity中的信息返回到第一个Activity利用startActivityForResult方法实现。给我一个demo
这是一个简单的示例,演示如何在两个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 著作权归作者所有。请勿转载和采集!