I have MainActivity which is an Activity and other class(which is a simple java class), we`ll call it "SimpleClass". now i want to run from that class the command startActivityForResult.
now i though that i could pass that class(SimpleClass), only MainActivity's context, problem is that, u cant run context.startActivityForResult(...);
so the only way making SimpleClass to use 'startActivityForResult; is to pass the reference of MainActivity as an Activity variable to the SimpleClass something like that:
inside the MainActivity class i create the instance of SimpleClass this way:
SimpleClass simpleClass=new SimpleClass(MainActivity.this);
now this is how SimpleClass looks like:
public Class SimpleClass { Activity myMainActivity; public SimpleClass(Activity mainActivity) { super(); this.myMainActivity=mainActivity; } .... public void someMethod(...) { myMainActivity.startActivityForResult(...); } }
now its working, but isnt a proper way of doing this? I`am afraid i could have some memory leaks in the future.
thanks. ray.
onActivityResult , startActivityForResult , requestPermissions , and onRequestPermissionsResult are deprecated on androidx.
onCreate(savedInstanceState); setContentView(R. layout. main2); DataClass dc = new DataClass(); dc. show(); } public void call(ArrayList<String> arr) { // Some code... } }
From your FirstActivity , call the SecondActivity using the startActivityForResult() method. Intent returnIntent = new Intent(); setResult(Activity. RESULT_CANCELED, returnIntent); finish(); Show activity on this post.
Yes. You can call startactivityforresult() from adapter.
I don't know if this is good practice or not, but casting a Context object to an Activity object
compiles fine.
Try this:
if (mContext instanceof Activity) { ((Activity) mContext).startActivityForResult(...); } else { Log.e("mContext should be an instanceof Activity."); }
This should compile, and the results should be delivered to the actual activity holding the context.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With