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で画像を見ることができません。レイアウトを変更しても元のレイアウトには影響しません。そのため、フラグメントのレイアウトを膨らませてFragmentActivity、そのフラグメントで撮影した画像を表示できるようにする方法を教えてください。

4

1 に答える 1

1

内部のコードを確認してくださいonActivityResult()。フラグメントでは不可能な Inflater オブジェクトを直接作成しています。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 に答える