Android requestcode resultcode的作用

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/

点赞(42) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿
发表
评论
返回
顶部