Android 在非Activity的类中调用startActivityForResult最近在做一个应用,需要在listview中的BaseAdapter类中调用startActivityForResult。 但是从Activity类传进来的Context却无法调用startActivityForResult()。 最后在网上查了下,http:///questions/2848775/use-startactivityforresult-from-non-activity 方法是将从Activity传进来的Context类改为Activity类,Result的返回在原Activity中的onActivityResult()处理即可。 范例如下: 假设原Activity类为AActivity
假设BaseAdapter类为: AAdapter extends BaseAdapter 在其构造方法中增加Activity变量: public AAdapter(AActivty aActivity){ this.mActivity = aActivty } 然后即可在需要的地方调用startActivityForResult: this.mActivity.startActivityForResult(intent,requestCode);
在AActivity中则将this传入即可: AAdapter aAdapter = new AAdapter(this);
目前只找到这种方法,如果大家有更好的方法,请告诉我,谢谢! |
|