45 lines
1.2 KiB
Java
45 lines
1.2 KiB
Java
package com.unity.filepicker;
|
||
|
||
import android.app.Fragment;
|
||
import android.content.Intent;
|
||
import android.os.Bundle;
|
||
|
||
/**
|
||
* 透明的Fragment,用于监听Activity结果
|
||
*/
|
||
public class FilePickerFragment extends Fragment {
|
||
|
||
private FilePickerResultCallback callback;
|
||
|
||
public interface FilePickerResultCallback {
|
||
void onActivityResult(int requestCode, int resultCode, Intent data);
|
||
}
|
||
|
||
public void setCallback(FilePickerResultCallback cb) {
|
||
this.callback = cb;
|
||
}
|
||
|
||
@Override
|
||
public void onCreate(Bundle savedInstanceState) {
|
||
super.onCreate(savedInstanceState);
|
||
// 保留实例,避免配置变化时Fragment被销毁
|
||
setRetainInstance(true);
|
||
}
|
||
|
||
@Override
|
||
public void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||
super.onActivityResult(requestCode, resultCode, data);
|
||
|
||
if (callback != null) {
|
||
callback.onActivityResult(requestCode, resultCode, data);
|
||
}
|
||
|
||
// 从Activity中移除Fragment
|
||
try {
|
||
getFragmentManager().beginTransaction().remove(this).commit();
|
||
} catch (Exception e) {
|
||
// 忽略移除错误
|
||
}
|
||
}
|
||
}
|