我的Activity中有一个onActivityResult方法。我得到了Bundle并通过比较字符串值来区分不同的行为("函数")
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// if (requestCode == REQUEST_QUICKLIST) {
if (resultCode == Activity.RESULT_OK) {
Bundle extras = data.getExtras();
if (extras != null) {
String sFunction = extras.getString("function");
现在我想另外处理新的Lollipop功能Intent.ACTION_OPEN_DOCUMENT_TREE
以显示一个树对话框,用户可以选择一个文件夹来保存内容。此操作也将由onActivityResult
public void onActivityResult(int requestCode, int resultCode, Intent resultData) {
if (resultCode == RESULT_OK) {
Uri treeUri = resultData.getData();
DocumentFile pickedDir = DocumentFile.fromTreeUri(this, treeUri);
如何区分我的正常行为和树行动?
答案 0 :(得分:1)
将请求代码与startActivityForResult(Intent intent, int requestCode);
并在onActivityResult()
在if (resultCode == Activity.RESULT_OK)
之前检查requestCode
。
像,
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// Check which request you're responding to .. it differentiate your Activity and Tree action
if (requestCode == <YOUR_ACTIVITY_REQUEST_CODE>) {
// Make sure the request was successful
if (resultCode == RESULT_OK) {
// Do something with the result
}
}
}
答案 1 :(得分:0)
如何区分我的正常行为和树行动?
在startActivityForResult()
来电中使用不同的请求代码。这些将作为onActivityResult()
的第一个参数传递,您可以在onActivityResult()
中使用逻辑来检查该请求代码并相应地进行分支。