• Intent 隐式跳转,向下一个活动传递数据,向上一个活动返回数据。


    一、每个Intent只能指定一个action,多个Category.

      使用隐式跳转,我们不仅可以跳转到自己程序内的活动,还可以启动其他程序的活动。使得Android多个程序之间的功能共享成为可能。

      例如:

      

      public class MainActivity extends Activity {
        Button btn;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        btn = (Button) findViewById(R.id.button1);
        btn.setOnClickListener(new View.OnClickListener() {  
        @Override
        public void onClick(View v) {
              Intent intent = new Intent(Intent.ACTION_VIEW);
              intent.setData(Uri.parse("http://www.baidu.com"));
              startActivity(intent);
            }
          });
        }
      }

      我们可以在<intent-filter>中再配置一个<data>标签,用于更精确的指定当前活动能够响应什么样的数据。<data>标签中可以配置一下内容:

      1.1 Android scheme:用于指定数据的协议;

      1.2 Android:host,用于指定数据的主机名称;

      1.3Android:port,用于指定数据的端口,一般紧跟在主机名的后面,  

      1.4android:path,用于指定主机名和端口号之后的部分,如一段网址跟在端口后的内容

      1.5 Android:mimeTYPE:用于指定可以处理的数据类型,可以用通配符。

      只有<data>中指定的内容与Intent携带的数据完全一致是才能响应该Intent,一般在<data>中都不会指定过多的内容。

      例子:调用系统打电话的activity:

      

    public class SecendActivity extends Activity {
    Button Bnt2;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.second);
    Bnt2 = (Button) findViewById(R.id.button2);
    Bnt2.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
    Intent intent = new Intent(Intent.ACTION_VIEW);
    intent.setData(Uri.parse("tel:10086"));
    startActivity(intent);
    }
    });
    }
    }

    1.7 Uri.parse()可以将一个字符串解析为URI对象。

    二、通过Intent向下一个活动传递数据,向一个上活动返回数据
      Intent启动一个活动是还可以传递数据,Intent提供一些列的putExtra()重载方法,启动了另外一个方法,只需要把数据重Intent中取出来。
      在被启动的activity中使用getIntent方法获取启动它的Intent,然后调用getStringExtra()方法就可取出传递的数据。




  • 相关阅读:
    【Vuejs】509- vue-loader工作原理
    【JS】508- MVVM原理介绍
    【Webpack】507- 基于Tree-shaking的多平台Web代码打包实践
    【TS】506- TypeScript 交叉类型
    【WebSocket】505- WebSocket 入门到精通
    【语雀知识库分享】HTTP面试宝典
    【JS】504- HTML5 之跨域通讯(postMessage)
    jQuery 选择器
    JQuery简介
    什么是JDBC的最佳实践?
  • 原文地址:https://www.cnblogs.com/llxbl/p/6071709.html
Copyright © 2020-2023  润新知