百恒网络
Android开发之通过activity获取返回结果
  • 百恒服务
  • APP开发
  • 网页案例
  • 网页知识
  • 关于我们
  • 联系我们
  • Android开发之通过activity获取返回结果

    2017-06-14 16:23:51 3745
           在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开发方面的技术我们都能够轻松为您解决。
    展开分享
    服务
    案例
    首页
    动态
    联系
    咨询