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 阅读(396) 评论(0) 编辑 收藏 举报