安卓用java registerForActivityResult使用详情代码
时间: 2024-05-03 17:20:16 浏览: 18
好的,我可以为您提供安卓使用Java registerForActivityResult的代码示例,如下:
```java
public class MainActivity extends AppCompatActivity {
private static final int MY_REQUEST_CODE = 100;
@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);
registerForActivityResult(new ActivityResultContracts.StartActivityForResult(),
result -> {
if (result.getResultCode() == Activity.RESULT_OK) {
Intent data = result.getData();
String message = data.getStringExtra("message");
Toast.makeText(MainActivity.this, message, Toast.LENGTH_SHORT).show();
}
}).launch(intent);
}
});
}
}
```
在上述代码示例中,我们首先为一个按钮设置了点击事件监听器,在点击按钮之后会跳转到一个名为SecondActivity的界面。
在这个代码示例中,我们使用了`registerForActivityResult()`方法为即将启动的活动(SecondActivity)注册结果回调,并传入一个用于启动活动的`ActivityResultLauncher`。
我们使用`ActivityResultContracts.StartActivityForResult()`作为启动活动的合同,并在回调方法的`onActivityResult()`中实现对结果进行处理。
当结果返回并且结果码(`getResultCode()`)为`RESULT_OK`时,我们可以使用`getStringExtra()`方法获取活动返回的数据,并在屏幕上显示一个简短的消息。
希望上述代码示例对您有所帮助。