代码运行异常 2015-01-21 07:02 采纳率: 100%
浏览 3386
已结题

安卓开发,如何解决在片段的片段里调用相册选取图片不显示的问题

情况分析:
使用menudrawer这个第三方来建一个主页,实现左边出现菜单栏,点击后跳转到不同片段Fragment的功能。如图,其中有个片段--相册。

图片说明
这个片段用的是android.support.v4.app.FragmentTabHost这个控件,具体如下:

android:id="@+id/tabhost"
android:layout_width="match_parent"
android:layout_height="match_parent" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" >

        <TabWidget
            android:id="@android:id/tabs"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="0"
            android:focusable="false"
            android:orientation="horizontal" />

        <FrameLayout
            android:id="@android:id/tabcontent"
            android:layout_width="0dp"
            android:layout_height="0dp"
            android:layout_weight="0" />

        <FrameLayout
            android:id="@+id/realtabcontent"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1" />
    </LinearLayout>
</android.support.v4.app.FragmentTabHost>

在这个片段里又添加了两个片段——片段1和片段2,如图:
图片说明
我现在的问题就是在片段1里,点击 按钮去相册中选择一张照片后,准备显示在ImageView上,但是不能成功显示,或者说根本就不显示选择的那张照片!
在片段一里调用相册的代码是:
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(intent, CODE_BOOK);

//CODE_BOOK 是一个Int类型的值,做判断用,这里没多大意义
在onActivityResult方法里获取这张照片,就在这个环节里出显示不出来的问题,代码是:
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == Activity.RESULT_OK)
{
if (requestCode == CODE_BOOK)
{
Uri originalUri = data.getData(); //获得图片的uri
try
{
Bitmap bm = MediaStore.Images.Media.getBitmap(resolver, originalUri);
mylogos.setImageBitmap(bm);
}
catch (FileNotFoundException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}

}

遇到这样的问题,网上搜索也不知道怎么搜索,查出问题的关节了,在包含这些片段的Activity里的onActivityResult()方法里能够获取到选择相册里的照片的路径,可是在对应的片段里却无法获取到选择的照片的路径,请教谁有有什么解决思路吗?

  • 写回答

1条回答 默认 最新

  • danielinbiti 2015-01-21 07:26
    关注

    如果你startActivityForResult(intent, CODE_BOOK);是写在fragment里面的话
    那@Override fragment的onActivityResult,那里面是能接受到返回值的。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 树莓派与pix飞控通信
  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题