zoukankan      html  css  js  c++  java
  • 论StartActivityForResult的返回结果

    package com.xtu.resulttest;

    import android.content.Intent;
    import android.os.Bundle;
    import android.support.v4.app.FragmentActivity;
    import android.support.v4.app.FragmentManager;
    import android.support.v4.app.FragmentTransaction;

    public class MainActivity extends FragmentActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    FragmentManager manager = getSupportFragmentManager();
    FragmentTransaction transaction = manager.beginTransaction();
    transaction.replace(R.id.id_framelayout, new TestFragment()).commit();
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    System.out.println("这里是activity的结果返回值。。。");
    super.onActivityResult(requestCode, resultCode, data);
    }
    }

    package com.xtu.resulttest;
    import android.app.Activity;
    import android.content.Intent;
    import android.net.Uri;
    import android.os.Bundle;
    import android.provider.Settings;
    import android.support.v4.app.Fragment;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;

    public class TestFragment extends Fragment {

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
    Bundle savedInstanceState) {
    Intent intent = new Intent(Settings.ACTION_BLUETOOTH_SETTINGS);
    startActivityForResult(intent,222);
    return inflater.inflate(R.layout.fragment_test, container, false);
    }

    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
    System.out.println("这是在fragment返回的数据");
    super.onActivityResult(requestCode, resultCode, data);
    }
    }

    结果的返回值为:

    04-06 11:00:53.222 4924-4924/com.xtu.resulttest I/System.out: 这里是activity的结果返回值。。。
    04-06 11:00:53.222 4924-4924/com.xtu.resulttest I/System.out: 这是在fragment返回的数据

    但如果将上面的红色字 改为: getActivity().startActivityForResult()之后,返回结果如下:

    04-06 11:00:53.222 4924-4924/com.xtu.resulttest I/System.out: 这里是activity的结果返回值。。。

    由以上的测试可知,当由activity发出startActivityForResult的指令后,结果必然只是返回到activity的OnActivityResult方法中。

    由碎片(fragment)直接发出的startActicityForResult的指令后,结果首先经过包裹它的Activity中的OnActivityResult方法,然后才是对应的Fragment中的

      OnActivityResult方法。

  • 相关阅读:
    gentoo 网络配置
    gentoo 安装
    渗透流程与相应的工具使用
    Web 安全工具篇:Burp Suite 使用指南
    kali&BT5下利用nmap对mysql等数据库渗透与爆破
    一个网站的渗透测试思路,流程
    网站渗透测试原理及详细过程
    mysql渗透过程
    AWVS介绍
    Windows下Python3.6.2+Django-1.11.5+httpd-2.4.27-win64-VC14部署网站
  • 原文地址:https://www.cnblogs.com/android-er/p/5358459.html
Copyright © 2011-2022 走看看