Here is my code hierarchy:
Activity1  ->> ROOT ACTIVITY 
Fragment1  ->> inside Activity1 
Viewpager  ->> inside Fragment1  
Fragment2  ->> hold by viewpager 
now i want to select a picture from system gallary, so i use startActivityForResult() in Fragment2,but the onActivityResult() can never be called in Fragment2. here is my code in fragment2
@Override
    public void onActivityCreated(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onActivityCreated(savedInstanceState);
        btnlocalpic.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
                OFNFragment.this.startActivityForResult(intent, 1);
            }
        });
        btntakepic_ofn.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
                OFNFragment.this.startActivityForResult(intent, 2);
            }
        });
    }
    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        // TODO Auto-generated method stub
        super.onActivityResult(requestCode, resultCode, data);
        Log.d("yancey", "onActivityResult  level3");
        Log.i("yancey", "requestCode is: " + requestCode);
        switch (requestCode) {
        case 1:
            Log.i("yancey", "uri is: " + data.getData());
            Uri uri = data.getData();
            ContentResolver resolver = getActivity().getContentResolver();
            try {
                Bitmap bitmap = BitmapFactory.decodeStream(resolver.openInputStream(uri));
                Intent intent = new Intent(getActivity(), PiceditActivity.class);
                intent.putExtra("bitmap", bitmap);
                getActivity().startActivity(intent);
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            }
            break;
        case 2:
            if(resultCode == Activity.RESULT_OK){
                String sdStatus = Environment.getExternalStorageState();
                if(!sdStatus.equals(Environment.MEDIA_MOUNTED)){
                    Log.i("TestFile", "SD card is not avaiable/writeable right now.");
                    return;
                }
                Bundle bundle = data.getExtras();
                Bitmap bitmap = (Bitmap)bundle.get("data");
                Intent intent = new Intent(getActivity(), PiceditActivity.class);
                intent.putExtra("bitmap", bitmap);
                startActivity(intent);
            }
            break;
        }
    }
hope you guys anderstand me, help me please!!
 
     
     
    