I am trying to get an image from a gallery using a fragment that is called from fragmentation, but the onActivityResult of the fragment class is not called. I found out that this could be due to the onActivityResult of the FragmentActivity class, but then when I check the log on both classes, non is not called, so I cannot access the selected image from the gallery.
I tried most of the solutions, but still can't understand the problem.
My main activity is fragments
public class CreateEvent extends FragmentActivity{ private int CREATE =0; private int INVITE = 1; private int FRAGMENT_COUNT = INVITE +1; private Fragment[] fragment = new Fragment[FRAGMENT_COUNT]; private boolean isResumed = false; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); FragmentManager fm = getSupportFragmentManager(); fragment[CREATE] = fm.findFragmentById(R.id.create); fragment[INVITE] = fm.findFragmentById(R.id.invite); FragmentTransaction transaction = fm.beginTransaction(); for(int i = 0 ; i<fragment.length; i++) { transaction.hide(fragment[i]); } transaction.commit(); }; private void showfragment(int fragmentIndex, boolean addToBackStack) { FragmentManager fm = getSupportFragmentManager(); FragmentTransaction transaction = fm.beginTransaction(); for (int i = 0; i<fragment.length;i++) { if (i == fragmentIndex) { transaction.show(fragment[i]); } else { transaction.hide(fragment[i]); } } if (addToBackStack) { transaction.addToBackStack(null); } transaction.commit(); }
My fragment class
public class Event extends Fragment{ @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { final View view = inflater.inflate(R.layout.createevent,container,false); imgcover = (ImageView) view.findViewById(R.id.newcover_img); btnupload = (Button) view.findViewById(R.id.newcover_upload); btnupload.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View arg0) { Intent intent = new Intent(Intent.ACTION_PICK,android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); startActivityForResult(intent, RESULT_LOAD_IMAGE); } }); } @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK && null != data) { Uri selectedImg = data.getData(); String[] filePathColumn = { MediaStore.Images.Media.DATA }; Cursor cursor = getContentResolver().query(selectedImg, filePathColumn, null, null, null); cursor.moveToFirst(); int columnIndex = cursor.getColumnIndex(filePathColumn[0]); String picturePath = cursor.getString(columnIndex); imgcover = (ImageView) findViewById(R.id.newcover_img); imgcover .setImageBitmap(BitmapFactory.decodeFile(picturePath)); cursor.close(); } }
}
lil'ms
source share