拍照后Viewpager捕捉到错误的页面

无聊的

我目前在我的Android应用中使用Viewpager实现。在每个片段中,都有一个按钮,用于拍摄照片并将其上传到在线数据库。但是,由于新的权限要求,我需要请求权限。因此,我将需要使用onRequestPermissionsResult()继续上传。

下面是我的实现

这是来自ViewPager.class的(由于授予权限后,将调用Viewpager中的此方法,而不是片段中的方法)

@Override
public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
    switch (requestCode) {
        case REQUEST_TAKE_PHOTO:
            if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                //Permission granted to write and read file
                //Get the current fragment
                List<Fragment> fragments = getSupportFragmentManager().getFragments();
                for (Fragment currFragment : fragments) {
                    if (currFragment != null)
                        currFragment.onRequestPermissionsResult(
                                REQUEST_TAKE_PHOTO
                                , permissions
                                , grantResults);
                }
            }
            return;
        default: //Do nothing
            return;
    }
}

这是来自片段本身

@Override
public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
    switch (requestCode) {
        case REQUEST_TAKE_PHOTO:
            if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                //Permission granted to write and read file
                uploadImage();
            }
            return;
        default: //Do nothing
            return;
    }
}

这部分

List<Fragment> fragments = getSupportFragmentManager().getFragments();
                    for (Fragment currFragment : fragments) {
                        if (currFragment != null)
                            currFragment.onRequestPermissionsResult(
                                    REQUEST_TAKE_PHOTO
                                    , permissions
                                    , grantResults);
                    }

我试图找到单击按钮正确片段并调用OnRequestPermissionResult()方法。

但是,我从Viewpager注意到了这种奇怪的行为实现它的方式是,我RecyclerView中单击一个Viewholder,然后在ViewPager中输入该位置。

奇怪的行为是,例如,我从RecyclerView进入了第2页然后,我滑动到第4页并单击“上传照片”按钮,完成照片后(通过内置相机应用程序),它将切换回第2页。

这是为什么?我如何解决它?抱歉,冗长的帖子。只是想从那里获取尽可能多的信息。谢谢

编辑:这就是我所谓的requestPermission

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (resultCode != Activity.RESULT_OK) {
        return;
    }
    if (requestCode == REQUEST_TAKE_PHOTO) {
        //Request for permission to access file
        if (ContextCompat.checkSelfPermission(getActivity(), android.Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
            //ask for permission
            ActivityCompat.requestPermissions(getActivity(), new String[]{android.Manifest.permission.WRITE_EXTERNAL_STORAGE},
                    REQUEST_TAKE_PHOTO);
        } else {
            uploadImage();
        }
    }
}

有什么事吗

编辑帖子:这是我称为notifyDataSetChange()的部分

private void loadData() {
    mRef.addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            ArrayList<RouteInstructions> mList2 = new ArrayList<RouteInstructions>();

            for (DataSnapshot instructions : dataSnapshot.getChildren()) {
                mList2.add(instructions.getValue(RouteInstructions.class));
            }
            mList = mList2;
            mAdapter.notifyDataSetChanged();
            mPager.setCurrentItem(getIntent().getIntExtra(EXTRA_INDEX, 0));
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });
}
无聊的

我发现了这个错误。基本上,我犯了将loadData()方法放在onResume()方法中的错误,因此将Viewpager页面设置回了它从Extra获得的页面。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

滚动捕捉到页面部分

来自分类Dev

try catch 无法捕捉到错误

来自分类Dev

晚上10点后抛出System.OutOfMemoryException”。我无法捕捉到实际错误

来自分类Dev

拖放后将PictureBox捕捉到按钮

来自分类Dev

Angular 2捕捉到可观察会导致错误:

来自分类Dev

你能捕捉到连接错误吗?

来自分类Dev

画布:矩形-捕捉到网格/捕捉到对象

来自分类Dev

将JFrame捕捉到屏幕边缘

来自分类Dev

使scrollviewer坚持/捕捉到开始或结束

来自分类Dev

将JFrame捕捉到屏幕边缘

来自分类Dev

捕捉到网格不起作用

来自分类Dev

只能捕捉到预定义区域

来自分类Dev

捕捉到多个图层上的要素

来自分类Dev

Swift UIScrollView无需子页面对齐即可捕捉到子视图宽度

来自分类Dev

LWUIT(J2ME)滚动后将元素列表捕捉到网格

来自分类Dev

jquery.pep:如何在拖动后捕捉到容器的边缘

来自分类Dev

为什么我不能捕捉到我的非终止错误?

来自分类Dev

为什么我的C编译器无法捕捉到超出范围的错误

来自分类Dev

我无法捕捉到“范围对于 min.n 来说太小”错误

来自分类Dev

在单元测试中,哪里可以捕捉到KeyboardInterrupt?

来自分类Dev

使jQuery可拖动以捕捉到特定网格

来自分类Dev

如何重新采样捕捉到现有网格的栅格?

来自分类Dev

具有掉落的变形以捕捉到网格(Cuis Smalltalk)

来自分类Dev

制作可拖动的UIView捕捉到iOS中的边缘

来自分类Dev

CSS 3级导航捕捉到父级

来自分类Dev

将排列的视图捕捉到UIStackView的顶部

来自分类Dev

将圆形捕捉到Leaflet中的折线

来自分类Dev

fabric.js箭头捕捉到网格

来自分类Dev

在类的每种方法中都捕捉到相同的期望

Related 相关文章

热门标签

归档