当前位置 > 主页 > APP资讯 >

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

日期:2020-01-11 17:27:18 作者:admin 出自:贵州海鑫盛app开发公司

在Android实际开发中,如需从已启动的activity获取返回结果,可使用与GeoQuiz应用中类似的实现代码。接下来专家就来为大家做个详细介绍:
       具体的代码调整就是:不调用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开发方面的技术我们都能够轻松为您解决。


上一篇:未来手机APP应用的行业领域将会有哪些? 下一篇:开发一款打车APP应具备哪些功能
18585853123
在线留言