在startactivityforresult中处理返回结果

   2024-09-30 3430
核心提示:在Android开发中,startActivityForResult用于启动一个新的Activity,并在该Activity完成后返回结果创建一个Intent对象,用于启

在Android开发中,startActivityForResult用于启动一个新的Activity,并在该Activity完成后返回结果

创建一个Intent对象,用于启动新的Activity。使用startActivityForResult(intent, requestCode)方法启动新的Activity。requestCode是一个整数,用于标识请求。在新的Activity中处理完成后,使用setResult(resultCode, intent)方法设置结果。resultCode是一个整数,表示结果状态;intent是一个包含返回数据的Intent对象。在原始Activity中重写onActivityResult(requestCode, resultCode, data)方法,以处理返回的结果。

下面是一个简单的示例:

假设我们有两个Activity:MainActivitySecondActivity。在MainActivity中,我们通过点击一个按钮来启动SecondActivity,并等待其返回结果。

MainActivity.java:

public class MainActivity extends AppCompatActivity {    private static final int REQUEST_CODE = 1;    @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 v) {                Intent intent = new Intent(MainActivity.this, SecondActivity.class);                startActivityForResult(intent, REQUEST_CODE);            }        });    }    @Override    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {        super.onActivityResult(requestCode, resultCode, data);        if (requestCode == REQUEST_CODE && resultCode == RESULT_OK) {            String result = data.getStringExtra("result");            Toast.makeText(this, "Result: " + result, Toast.LENGTH_SHORT).show();        }    }}

SecondActivity中,我们处理完成后,将结果设置为一个字符串,并返回给MainActivity

SecondActivity.java:

public class SecondActivity extends AppCompatActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_second);        Button button = findViewById(R.id.button);        button.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                Intent intent = new Intent();                intent.putExtra("result", "Hello from SecondActivity!");                setResult(RESULT_OK, intent);                finish();            }        });    }}

当用户点击SecondActivity中的按钮时,将返回一个字符串结果给MainActivity,并显示一个Toast消息。

 
举报打赏
 
更多>同类维修大全
推荐图文
推荐维修大全
点击排行

网站首页  |  关于我们  |  联系方式网站留言    |  赣ICP备2021007278号