Intent(页面跳转)

Android页面跳转使用Intent,有显式和隐式两种

//显式跳转

显式用的多一点

Intent intent1 = new Intent();  
        // 1.是当前的包名,2跳转activity的类名,一定要加上包名  
        intent1.setClassName("com.itcast.intent", "com.itcast.intent.DemoActivity");  
        // startActivity(intent1);  
        /** 
         * 方法二 
         */  
       Intent intent2 = new Intent(this, DemoActivity.class);  
        // startActivity(intent2);  
       /** 
         * 方法三 
         */  
        Intent intent3 = new Intent();  
        ComponentName component = new ComponentName("com.itcast.intent", "com.itcast.intent.DemoActivity");  
       intent3.setComponent(component);  
        // startActivity(intent3);  

//隐式跳转

隐式要安全一点

配置文件
<activity  
           android:name=".DemoActivity"  
           android:label="@string/demoActivity" >  
           <intent-filter>  
 
               <!-- 隐士意图中指定intent的名字 自己定义 可匹配多项 -->  
               <action android:name="com.itcast.intent.DemoActivity" />  
               <!-- 隐式intent需要指定的activity的类型,可自己定义该值,需要在调用的时候相对应不写该项默认为 android.intent.category.DEFAULT,可匹配多项 -->  
               <category android:name="android.intent.category.DEFAULT" />  
               <!-- 指定传想该activity数值的类型 和主机,如果指定该项,就必须在跳转activity的时候传入还数据和主机名 -->  
               <data  
                   android:host="cn.itcast.demo"  
                   android:scheme="itcast" />  
          </intent-filter>  
       </activity>  

Java文件中
 /** 
         * 隐式意图只需要知道跳转activity的动作和数据,就可以激活对应的组件<br> 
         * 如果要激活另外程序的组件 
         */  
        Intent intent = new Intent();  
        intent.setAction("com.itcast.intent.DemoActivity");  
        // 不管在主配置文件中有沒有声明跳转activity的category,都要写该项,不然报错找到activity,不过有些系統會以默認的類型  
        intent.addCategory("android.intent.category.DEFAULT");  
        // 如果在声明activity的时候指定了data属性,在跳转的时候就一定要设置他的data属性值,和配置的属性值相等,不然也会报找不到的错误  
        intent.setData(Uri.parse("itcast://cn.itcast.demo"));  
        // startActivity(intent);  
        Intent imageIntent = new Intent();  
        imageIntent.setAction(Intent.ACTION_PICK);  
        imageIntent.setType("image/*");// 设置数据类型  
        startActivity(imageIntent);  

posted on 2016-05-06 15:59  huaihuaibuguai  阅读(395)  评论(0编辑  收藏  举报

导航