0

我正在为标签使用片段,并且我有一个Fragment从设备库中捕获图像的片段。

为此,我在片段 1 中使用以下代码:

Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);

startActivityForResult(Intent.createChooser(intent,"Select Picture"), 2);

它工作正常,因为我可以从图库中选择图像,并拍摄我正在使用的图像

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    // if (requestCode == REQUEST_CODE && resultCode == Activity.RESULT_OK)
    try {
        // We need to recyle unused bitmaps

        LayoutInflater inflater = 
                (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);

        Uri selectedImageURI = data.getData();
        Drawable d=Drawable.createFromPath( getRealPathFromURI(selectedImageURI));

        LinearLayout l=(LinearLayout)inflater.inflate(R.layout.tab_frag1_layout, null, false);
        //LinearLayout l2=(LinearLayout)inflater.inflate(R.layout.tabs_layout, container, false);

        Toast.makeText(this, getRealPathFromURI(selectedImageURI), Toast.LENGTH_LONG).show();

        Button btn=(Button)l.findViewById(R.id.profileImage);
        // btn.setBackground(d);
        btn.setBackgroundDrawable(d);
        l.removeView(btn);

        l.addView(btn);

        // imageView.setImageBitmap(bitmap);
    } catch (Exception e) {
        e.printStackTrace();
    }
    super.onActivityResult(requestCode, resultCode, data);

}// end of the onActivityResult

但不幸的是,我在 btn 上看不到图像,即使 Layout 的任何更改都不会影响原始布局,所以请帮助我如何在 Fragment 中膨胀布局FragmentActivity,以便我可以在该片段上显示拍摄的图像。

4

1 回答 1

1

嘿检查你的代码里面onActivityResult()。您正在直接创建 Inflater 对象,这在 Fragments 中是不可能的。您必须根据 FragmentActivity 引用创建 Inflater 对象。替换这一行:

  LayoutInflater inflater = 
                        (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);

LayoutInflater inflater = 
                        (LayoutInflater)getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
于 2013-01-03T08:02:34.343 回答