700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Android笔记 定义意图过滤器intent- filter demo

Android笔记 定义意图过滤器intent- filter demo

时间:2022-08-10 09:09:19

相关推荐

Android笔记 定义意图过滤器intent- filter demo

本例建立在显示意图demo基础上 修改处我会加粗

1修改清单文件 配置第二个界面的意图过滤器

<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="/apk/res/android"package="com.example.a66_intent_1"android:versionCode="1"android:versionName="1.0" ><uses-sdkandroid:minSdkVersion="8"android:targetSdkVersion="18" /><applicationandroid:allowBackup="true"android:icon="@drawable/ic_launcher"android:label="@string/app_name"android:theme="@style/AppTheme" ><activityandroid:name="com.example.a66_intent_1.MainActivity"android:label="@string/app_name" ><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity><activityandroid:name="com.example.a66_intent_1.Activity2"android:label="@string/app_name" ><strong> <intent-filter><!-- 指定动作及类别 --><action android:name="com.chj.xxx" /><category android:name="android.intent.category.DEFAULT" /><!-- 指定数据 scheme描述规则:语法前缀 host:主机名 port:端口号 path:进一步路径 --><!-- android:host="" --><!-- android:path="" --><!-- android:port="" --><!-- mimeType数据类型 如 JPG 对应image/JPEG 用到时可查询 --><dataandroid:mimeType="vnd.android.cursor.item/haha"android:scheme="chj" /></intent-filter></strong></activity></application></manifest>

2修改第一个界面的布局 添加一个按钮

<LinearLayout xmlns:android="/apk/res/android"xmlns:tools="/tools"android:orientation="vertical"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity" ><TextViewandroid:id="@+id/textView1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="界面1" /><Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:onClick="click"android:text="跳转" /><Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:onClick="click3"android:text="跳转到系统应用" /><strong> <Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:onClick="click4"android:text="隐式意图跳转" /></strong></LinearLayout>

3第一Activity添加click4点击事件

package com.example.a66_intent_1;import .Uri;import android.os.Bundle;import android.app.Activity;import android.content.Intent;import android.view.Menu;import android.view.View;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}// 四种方法来进行显示意图跳转public void click(View view) {Intent intent = new Intent(MainActivity.this, Activity2.class);startActivity(intent);}// public void click(View view) {// Intent intent =new Intent();// intent.setClassName(MainActivity.this,// "com.example.a66_intent_1.Activity2");// startActivity(intent);// }// public void click() {// Intent intent =new Intent();// intent.setClass(MainActivity.this, Activity2.class);// startActivity(intent);// }// 以上三种方式跳转意思一致public void click3(View view) {Intent intent = new Intent();// setClassName方法有俩种 此处与24行的是不同的setClassName方法// 一般系统应用包名可能会被开发商更改 因此可能执行不成功 接下来会学习隐式意图来跳转到系统组件界面intent.setClassName("com.sec.android.gallery3d","com.sec.android.gallery3d.app.Gallery");startActivity(intent);}// 隐式意图跳转到第二个界面<strong>// 显示意图根据包名类名激活组件 二隐式意图根据动作等参数实现组件的激活public void click4(View view) {Intent intent = new Intent();// 设置跳转动作和类别 设置为第二个界面指定的动作和类别(之前在清单文件配置的)//category.一般用于指定附加信息 环境参数 没有就使用默认值intent.setAction("com.chj.xxx");intent.addCategory("android.intent.category.DEFAULT");//最好都写上 避免出错// //设置跳转数据 之前在清单文件配置的// intent.setData(Uri.parse("chj:hehe"));// //指定数据mimeType 与清单文件一致// intent.setType("vnd.android.cursor.item/haha");// 如果既有数据又有mineType则使用以下方法intent.setDataAndType(Uri.parse("chj:hehe"),"vnd.android.cursor.item/haha");startActivity(intent);}</strong>}

4第二个Activity可以获取第一界面的数据

package com.example.a66_intent_1;import android.app.Activity;import android.content.Intent;import .Uri;import android.os.Bundle;import android.view.View;import android.widget.Toast;public class Activity2 extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.activity2);//获取到激活它的intentIntent intent = getIntent();<strong>//获取到intent里的数据Uri uri =intent.getData();String res = uri.toString();Toast.makeText(this, "取得数据"+res, Toast.LENGTH_SHORT).show();</strong>}public void click2(View view) {Intent intent =new Intent();intent.setClass(Activity2.this, MainActivity.class);startActivity(intent);}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。