十年专注于网站建设与互联网应用开发,低调、有情怀的网络应用服务商!
南昌百恒科技微信公众号 扫一扫关注
tel-icon全国服务热线:400-680-9298,0791-88117053
扫一扫关注百恒科技微信公众号

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

百恒 2017-06-14 16:23:51 960
       在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开发方面的技术我们都能够轻松为您解决。
400-680-9298,0791-88117053
扫一扫关注百恒网络微信公众号

欢迎您的光顾,我们将竭诚为您服务×

售前咨询 售前咨询
 
售前咨询 售前咨询
 
售前咨询 售前咨询
 
售前咨询 售前咨询
 
售前咨询 售前咨询
 
售后服务 售后服务
 
备案专线 备案专线
 
售后服务 售后服务
 
×