(三)使用Intent在活动中穿梭:显式和隐式Intent

一、显式Intent

 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main_layout);

        Button btn=(Button)findViewById(R.id.button1);
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                Intent intent=new Intent(MainActivity.this,Main2LayoutActivity.class);
                startActivity(intent);

            }
        });
    }
  • 实现的效果是: 点击id为button1的按钮就会从MainActivity 这个活动跳转到Main2LayoutActivity这个活动,即从MainActivity这个活动的布局跳转到Main2LayoutActivity这个活动对应的布局。

二、隐式Intent

   @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main_layout);

        Button btn=(Button)findViewById(R.id.button1);
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                Intent intent=new Intent("com.example.myAction");
                intent.addCategory("android.intent.category.DEFAULT");
                startActivity(intent);

            }
        });
    }
  • 与显式区别在于,Intent的构造函数不再直接定义从哪个活动跳转到哪个活动,而是匹配哪个活动的<action>和<category>符合Intent中指定的action和category。所以
  • 要想实现跳转,则必须定义一个符合Intent中指定的action和category的活动。如下:

AndroidManifest.xml:

   <activity android:name=".Main2LayoutActivity">
            <intent-filter>
                <action android:name="com.example.myAction"></action>
                <category android:name="android.intent.category.DEFAULT"></category>
            </intent-filter>
        </activity>

效果:

点击按钮:

  •  intent.addCategory("android.intent.category.DEFAULT");可以省略,因为intent会默认自动带上这个category。
  • 一个Intent只能指定一个Action,但是能指定多个category。

三、更多隐式Intent的使用

时间: 2024-11-03 05:43:10

(三)使用Intent在活动中穿梭:显式和隐式Intent的相关文章

使用Intent在活动之间穿梭

使用Intent在活动之间穿梭 1.在com.example.activitytest中创建第二个活动SecondActivity: /** * 第二个活动 */ public class SecondActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVie

模板显式、隐式实例化和(偏)特化、具体化的详细分析(转)

这么多叫法,其实就是三种. 1. 显示实例化 2. 隐式实例化 3. 特化(=具体化).偏特化 一.实例化 1.显示.隐式实例化 什么是实例化:一个通过使用具体值替换模板参数,从模板产生的普通类,函数或者成员函数的过程. 显示实例化:通过名字可见,就是清楚的表明你要实例化的类型 隐式实例化:通过编译器自己推测判断要实例化的类型. 比如一个模板: template<class T> //函数模板实现  void swap(T &a, T &b) {     T temp;    

模板显式、隐式实例化和(偏)特化、具体化的详细分析(转)

这么多叫法,其实就是三种.      1. 显示实例化      2. 隐式实例化      3. 特化(=具体化).偏特化 一.实例化 1.显示.隐式实例化       什么是实例化:一个通过使用具体值替换模板参数,从模板产生的普通类,函数或者成员函数的过程.      显示实例化:通过名字可见,就是清楚的表明你要实例化的类型      隐式实例化:通过编译器自己推测判断要实例化的类型.     比如一个模板: template<class T> //函数模板实现  void swap(T

android中的显式与隐式Intent

Intent是Android初学者比较难理解的一个东西.我这里以通俗易懂的语言和通俗易懂的代码,让初学者简单感受一下Intent. intent就是意图的意思.Intent分两种:显式(Explicit intent)和隐式(Implicit intent). 一.显式(设置Component) 显式,即直接指定需要打开的activity对应的类.以下多种方式都是一样的,实际上都是设置Component直接指定Activity类的显式Intent,由MainActivity跳转到SecondAc

Android第一行学习代码笔记四---使用Intent在活动之间穿梭

一:使用显示Intent 右键com.example.firstactivity包->New->Activity->Empty Activity,活动名称为secondActivity,并勾选Generate Layout File,给布局文件起名为secondlayout,但并不勾选Launcher Activity选项,点击Finish,打开secondlayout.xml,将里面的代码替换成如下内容: <?xml version="1.0" encodin

使用Intent在活动之间穿梭(《第一行代码》读书笔记)

以下全是个人理解//瞎扯 其实活动理解理解起来就像一个个函数 那么Intent就是调用函数和参数传递 可以有无参,仅仅是调用 Intent intent = new Intent(A.this, B.class); startActivity(intent); 由活动A调用活动B,无参,无返回值,当然B调用结束,要回到A. 可以有参数 A---Intent intent = new Intent(A.this, B.class); intent.putExtra( "这里是参数的键"

Android学习第二天:Toast(提醒)、Menu(菜单)、Intent的显式和隐式(包括打开、适配网站,调用拨号界面等)

1.Toast提醒 为昨天写的按钮程序添加一个提醒,在MainActivity中添加如下代码: Button bt1 = (Button) findViewById(R.id.button_1); bt1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Toast.makeText(MainActivity.this, "您点击了按钮1", Toast.

(转载)Android理解:显式和隐式Intent

Intent分两种:显式(Explicit intent)和隐式(Implicit intent). 一.显式(设置Component) 显式,即直接指定需要打开的activity对应的类. 以下多种方式都是一样的,实际上都是设置Component直接指定Activity类的显式Intent,由MainActivity跳转到SecondActivity: 1.构造方法传入Component,最常用的方式 Intent intent = new Intent(this, SecondActivit

C++中显式、隐式与explicit关键字

在Qt的开发中看到explicit,由此展开搜索. 隐式:编译器完成的转换,如 int a = 1; float b = 3; float sum; sum = a + b; //a本是int,编译器将a隐式地转化为了float 显式:用户完成的转换,如 float a=1; float b=3; int s; s = (int)a+(int)b;//a与b被显式地转化为了float 对于函数而非数据,这里有另一个例子[引用]: #include <iostream> using namesp