Android开发之通过activity获取返回结果

       在Android实际开发中,如需从已启动的activity获取返回结果,可使用与GeoQuiz应用中类似的实现代码。接下来南昌APP开发公司专家就来为大家做个详细介绍:

       具体的代码调整就是:

不调用Activity的startActivityForResult(...)方法,转而调用Fragment.startActivityForResult(...)方法;不覆盖Activity.onActivityResult(...)方法,转而覆盖Fragment.onActivityResult(...)方法。

       public class CrimeListFragment extends Fragment {

       private static final int REQUEST_CRIME = 1;

       ...

       private class CrimeHolder extends RecyclerView.ViewHolder

       implements View.OnClickListener {

       ...

       @Override

       public void onClick(View v) {

       Intent intent = CrimeActivity.newIntent(getActivity(), mCrime.getId());

       startActivityForResult(intent, REQUEST_CRIME);

       }

       }

       @Override

       public void onActivityResult(int requestCode, int resultCode, Intent data) {

       if (requestCode == REQUEST_CRIME) {

       // Handle result

       }

       }

       ...

       }

       除将返回结果从托管activity传递给fragment的额外实现代码之外,Fragment.startActivity-ForResult(Intent,int)方法类似于Activity的同名方法。

从fragment中返回结果的处理稍有不同。fragment能够从activity中接收返回结果,但其自身无法持有返回结果。只有activity拥有返回结果。因此,尽管Fragment有自己的startActivity-ForResult(...)和onActivityResult(...)方法,但却没有setResult(...)方法。

       相反,我们应让托管activity返回结果值。具体代码如下:

       public class CrimeFragment extends Fragment {

       ...

       public void returnResult() {

       getActivity().setResult(Activity.RESULT_OK, null);

       }

       }

       以上就是易速网络今天教大家的通过fragment 获取返回结果的操作方法,你学会了吗?如果还有那些不明白的地方,可随时来电和我们联系,本公司专业从事南昌APP开发、微信开发、网站建设等服务具有十多年的资深经验,关于APP开发方面的技术我们都能够轻松为您解决。

提供全面的搜索引擎优化学习交流,专注网站优化和搜索引擎营销推广服务。用专业的SEO技术为企业网站提升关键词排名,让你的网站不仅满足用户体验还要适合搜索引擎优化规则。
易速网站优化公司 » Android开发之通过activity获取返回结果
享更多特权,立即登录下载海量资源
喜欢我嘛?喜欢就按“ctrl+D”收藏我吧!♡