在我片段中,我从图库中选择了照片
在manifest.xml中
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_GPS"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.CALL_PHONE"/>
<uses-permission android:name="android.permission.GET_TASKS"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
在此之前,我的应用程序显示权限对话框。我按允许
public class EditProfileFragment extends androidx.fragment.app.Fragment {
private void choosePhotoFromGallery() {
Intent photoPickerIntent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
photoPickerIntent.setType("image/*");
startActivityForResult(photoPickerIntent, SELECT_PHOTO);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (BuildConfig.DEBUG)
Log.d(TAG, "onActivityResult_requestCode = " + requestCode + ", resultCode = " + resultCode + ", data = "
+ AndroidUtil.intent2String(data));
此处请求权限对话框:
private boolean checkAndRequestPermissions() {
int writeExternalStorage = ContextCompat.checkSelfPermission(getActivity(), Manifest.permission.WRITE_EXTERNAL_STORAGE);
int readExternalStorage = ContextCompat.checkSelfPermission(getActivity(), Manifest.permission.READ_EXTERNAL_STORAGE);
int camera = ContextCompat.checkSelfPermission(getActivity(), Manifest.permission.CAMERA);
List<String> listPermissionsNeeded = new ArrayList<>();
if (writeExternalStorage != PackageManager.PERMISSION_GRANTED) {
listPermissionsNeeded.add(Manifest.permission.WRITE_EXTERNAL_STORAGE);
}
if (readExternalStorage != PackageManager.PERMISSION_GRANTED) {
listPermissionsNeeded.add(Manifest.permission.READ_EXTERNAL_STORAGE);
}
if (camera != PackageManager.PERMISSION_GRANTED) {
listPermissionsNeeded.add(Manifest.permission.CAMERA);
}
if (BuildConfig.DEBUG)
Log.d(TAG, "checkAndRequestPermissions_listPermissionsNeeded(" + listPermissionsNeeded.size() + ")");
if (!listPermissionsNeeded.isEmpty()) {
if (BuildConfig.DEBUG)
Log.d(TAG, "checkAndRequestPermissions_REQUEST_WRITE_EXTERNAL_STORAGE_REQ_CODE");
ActivityCompat.requestPermissions(getActivity(), listPermissionsNeeded.toArray(new String[listPermissionsNeeded.size()])
, WRITE_EXTERNAL_STORAGE_REQ_CODE);
return false;
}
return true;
}
将此放入活动结果的活动中
Fragment fragment = getSupportFragmentManager().findFragmentById(R.id.frameLayout);
fragment.onActivityResult(requestCode, resultCode, data);
它将做的是将该片段称为您的片段的onActivityResult。因此您将在片段中包含选择数据
结果的内部片段启动活动
getActivity().startActivityForResult(takePictureIntent, REQUEST_TAKE_PHOTO);
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Fragment fragment = getSupportFragmentManager().findFragmentById(R.id.frameLayout);
fragment.onActivityResult(requestCode, resultCode, data);
}
@Override
public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
// super.onActivityResult(requestCode, resultCode, data);
Log.d(TAG, "Activit Result");
if (resultCode == -1) {
}
}
我正在开发一个android应用程序,它有一个活动。该活动有一个ViewPager,它使用FragmentStatePagerAdapter加载两个片段。 正在活动的onResume方法上重新创建此适配器。 那是内存溢出错误吗?为什么getActivity()方法在片段似乎被正确加载的情况下返回null? 提前谢谢你
嗨,我在主片段内使用带有碎片网的viewPager。我试图从画廊或相机中获取图像到位图,但在选择照片并启动ActivityForResult后,它不会在onActivityResult中捕获... 以下是我如何调用startActivityForResult: 这是我的onActivityResult: 有什么想法吗?
正如您在onCreate方法中看到的,我在“片段”列表的第0个片段上调用了getView。它返回null。我试着在代码中加入一个计时器,让它每秒运行一次,并检查视图是否为空。在计时器的第二个滴答声中,视图不为空。大体上 主要活动。JAVA 空白碎片。JAVA
我正在尝试将Map放入一个片段中。我正在粘贴我正在使用的代码 XML 下面是我声明的片段名称 下面是我如何初始化地图 这个方法是在onCreateView上调用的 错误是 请帮助解决此问题。问题在下面部分 编辑1 将xml更改为 和 和初始化 但同样的错误是 这发生在排队的时候 为什么会发生这种情况?? 编辑2 对getmap已弃用。所以我试过了 和 以及回调。。 和setUpMap方法 错误显示
我有一个包含框架布局的活动,片段A托管在这里与一起。 此片段A托管了另外两个包含回收器视图的片段——使用< code > fragmentstatepageradar 的片段A1和片段A2。此时,我能够在片段A1和A2中使用< code > getSupportFragmentManager()获得父片段。 单击A1和A2中的回收器视图项会产生另一个片段,比如片段B,它会替换片段A并将其添加到ba
下面的代码在活动中运行良好,但我不能使它在片段中工作。 从不调用。