zoukankan      html  css  js  c++  java
  • 寒假安卓app开发学习记录(7)

        今天学习了Intent的基本用法。Intent是什么?Intent在Android中的核心作用就是“跳转”(Android中的跳转机制),同时可以携带必要的信息,将Intent作为一个信息桥梁。最常用的莫过于从一个activity跳转到另一个activity,然后返回到上一个activity。还可以在不同组件间进行数据传递。

        Intent可分为两种,显示Intent和隐式Intent。

       显式Intent定义对于明确指出了目标组件名称的Intent,我们称之为显式Intent。 即在通过Intent启动Activity时,需明确指定激活组件的名称。如果需要在本应用中启动其他的Activity时,可以使用显式意图来启动Activity。

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

              I
     显式意图还可以根据目标组件的包名、全路径名来指定开启组

        Intent intent = new Intent();
        intent.setClassName("com.android.deskclock","com.android.deskclock.DeskClock");
     
        startActivity(intent);

       隐式Intent定义对于没有明确指出目标组件名称的Intent,则称之为隐式Intent。系统会根据隐式意图中设置的动作(action)、类别(category)、数据(Uri和数据类型)找到最合适的组件。

       <activity android:name="com.itcast.intent.Activity02">
           <intent-filter>
               <action android:name="cn.itscast.xxx"/>
               <category android:name="android.intent.category.DEFAULT"/>
           </intent-filter>
       </activity>


    使用隐式意图开启Activity的示例代码如下所示:

    Intent intent = new Intent();
    // 设置动作和清单文件一样
       intent.setAction("cn.itscast.xxx");
       startActivity(intent);

    显式intent例子:

    package com.nyl.intenttest;
    
    import android.app.Activity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    
    public class MainActivity extends Activity implements View.OnClickListener {
    
        private Button btnHome;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            btnHome = (Button) findViewById(R.id.btnHome);
            btnHome.setOnClickListener(this);
        }
    
        @Override
        public void onClick(View view) {
            switch (view.getId()){
                case R.id.btnHome:
                    Intent it = new Intent();
                    it.setAction(Intent.ACTION_MAIN);
                    it.addCategory(Intent.CATEGORY_HOME);
                    startActivity(it);
                    break;
            }
        }
    }

    隐式intent例子:

    package com.nyl.intenttest;
    
    import android.app.Activity;
    import android.content.Intent;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    
    public class MainActivity2 extends Activity implements View.OnClickListener {
    
        private Button btnTwo;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main2);
            btnTwo = (Button) findViewById(R.id.btnTwo);
            btnTwo.setOnClickListener(this);
        }
    
        @Override
        public void onClick(View view) {
            switch (view.getId()) {
                case R.id.btnTwo:
                    Intent it = new Intent();
                    it.setAction(Intent.ACTION_VIEW);
                    startActivity(it);
                    break;
            }
        }
    }
    <activity android:name=".MainActivity2"
                android:label="Activity2">
                <intent-filter>
                    <action android:name="android.intent.action.VIEW"/>
                    <category android:name="android.intent.category.DEFAULT"/>
                </intent-filter>
            </activity>

     

  • 相关阅读:
    Week03-面向对象入门
    Week02-Java基本语法与类库
    201621123056 《Java程序设计》第1周学习总结
    2.2确定一个字符是否在指定范围内
    2.1确定一个char包含何种字符
    1.自己写一个计算器demo
    1.23 确定一个Decimal或Double的整数部分
    1.5 测试奇偶性
    1.2度转化为弧度 1.3弧度转换为度
    1.1确定分数与浮点数值之间的近似相等性。
  • 原文地址:https://www.cnblogs.com/wendi/p/12299080.html
Copyright © 2011-2022 走看看