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) {
|
|||
|
|
// 忽略移除错误
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|