requestCode和resultCode是Android中用于管理Activity之间的交互的两个参数。
requestCode用于标识一个Activity的请求,可以理解为一个标识符。当我们启动一个Activity时,可以通过调用startActivityForResult方法,并传入一个requestCode来启动一个带有返回结果的Activity。这个requestCode可以是任意的整数,用于标识我们发起的请求。
resultCode用于标识一个Activity的返回结果,也可以理解为一个标识符。当一个被启动的Activity返回时,会通过调用setResult方法,并传入一个resultCode来设置返回结果。resultCode同样可以是任意的整数,用于标识返回的结果。
在使用startActivityForResult启动一个带有返回结果的Activity时,我们可以通过重写被启动Activity的onActivityResult方法来处理返回结果。onActivityResult方法接收三个参数,分别是requestCode、resultCode和data。其中,requestCode用于区分不同的请求,resultCode用于处理不同的结果,而data则是返回的结果数据。
下面是一个使用requestCode和resultCode的例子:
1. 在主Activity中启动一个带有返回结果的Activity
```
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, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_CODE && resultCode == RESULT_OK) {
// 处理返回结果
String result = data.getStringExtra("result");
Toast.makeText(this, result, Toast.LENGTH_SHORT).show();
}
}
}
```
2. 在被启动的Activity中设置返回结果
```
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, World!");
setResult(RESULT_OK, intent);
finish();
}
});
}
}
```
在上面的例子中,我们在主Activity中启动了一个带有返回结果的SecondActivity,并传入了一个requestCode。当用户在SecondActivity点击按钮后,我们通过setResult方法设置了返回结果,并通过finish方法关闭了SecondActivity。在主Activity的onActivityResult方法中,我们可以根据requestCode和resultCode来判断返回结果,并处理相应的逻辑。
使用requestCode和resultCode,我们可以在Activity之间进行有序的交互,实现更加灵活和复杂的业务逻辑。例如,可以在一个Activity中启动多个带有返回结果的Activity,并根据不同的requestCode和resultCode来处理不同的返回结果,以及实现Activity之间的传递数据和状态的交互等等。
总而言之,requestCode和resultCode是Android中管理Activity之间交互的重要参数,通过它们,我们可以实现Activity之间的有序交互,并处理不同的返回结果。 如果你喜欢我们三七知识分享网站的文章, 欢迎您分享或收藏知识分享网站文章 欢迎您到我们的网站逛逛喔!https://www.37seo.cn/
发表评论 取消回复