android---(Intent)
来源:互联网 发布:保山学院网络教学平台 编辑:程序博客网 时间:2024/05/16 12:29
不同的形式实现activity之间的切换
//直接查找法 public void componentClick(View v){ //Intent intent = new Intent(); //ComponentName componentName = new ComponentName(this,Main2Activity2.class); //intent.setComponent(componentName); //上面的简写形式 Intent intent = new Intent(this,Main2Activity2.class); startActivity(intent);//启动这个activity }
//通过action查找组件和category属性 public void actionOclick(View v){ Intent intent = new Intent(); intent.setAction("com.My_ACTION"); intent.addCategory("com.MY_CATEGORY"); startActivity(intent); }程序清单配置:需要配置 intent-filter <activity android:name=".Main2Activity3" android:label="Main2Activity3" > <intent-filter android:priority="2"> <action android:name="com.My_ACTION"></action> <category android:name="android.intent.category.DEFAULT"></category>//必须 <category android:name="com.MY_CATEGORY"></category> </intent-filter> </activity>
//data属性与action配合合使用 public void dateClick(View v){ //打开浏览器,并访问百度首页 //因为这个意图符合浏览器的activity,所以能打开 Intent intent = new Intent(); intent.setAction(Intent.ACTION_VIEW); Uri data = Uri.parse("http://www.baidu.com"); intent.setData(data); startActivity(intent); }清单配置: <activity android:name=".Main2Activity4" android:label="@string/title_activity_main24" > <intent-filter> <action android:name="android.intent.action.VIEW"></action> <category android:name="android.intent.category.DEFAULT" /> <data android:scheme="http" android:host="www.baidu.com"></data> </intent-filter> </activity>
//使用type属性:表示数据类型 public void typeClick(View v){ Intent intent = new Intent(); intent.setAction(Intent.ACTION_VIEW); Uri data = Uri.parse("http://www.baidu.com"); intent.setData(data); //mime类型 intent.setDataAndType(data,"text/html");//intent.setData(data):不能单独使用,单独使用会将data 自动设置为null startActivity(intent); } <activity android:name=".MainActivity2Activity" android:label="@string/title_activity_main_activity2" > <intent-filter> <action android:name="android.intent.action.VIEW"></action> <category android:name="android.intent.category.DEFAULT"></category> <data android:scheme="http" android:host="www.baidu.com" android:mimeType="text/html"></data> </intent-filter> </activity>
查看Activity的存储
Activity的启动模式:
activityA <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="activity-A" android:id="@+id/textView" /> <Button android:id="@+id/button2" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="activity-A" android:onClick="startA" android:layout_alignParentTop="true" android:layout_alignStart="@+id/textView" android:layout_marginTop="69dp" /> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:text="activity-B" android:id="@+id/button3" android:layout_below="@+id/button2" android:layout_centerHorizontal="true" android:layout_marginTop="94dp" android:onClick="startB" />ActivityB: <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Activty-B" android:id="@+id/button4" android:layout_below="@+id/textView2" android:layout_alignParentStart="true" android:layout_marginTop="126dp" android:onClick="startA" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="activity-b" android:id="@+id/button5" android:layout_below="@+id/button4" android:layout_centerHorizontal="true" android:layout_marginTop="132dp" android:onClick="startB" />ActivityA类: public void startA(View v){ Intent intent = new Intent(this,MainActivity22ActivityA.class); startActivity(intent); } public void startB(View v){ Intent intent = new Intent(this,MainActivity23ActivityB.class); startActivity(intent); }ActivityB类: public void startA(View v){ Intent intent = new Intent(this,MainActivity22ActivityA.class); startActivity(intent); } public void startB(View v){ Intent intent = new Intent(this,MainActivity23ActivityB.class); startActivity(intent); }清单配置文件: <activity android:name=".MainActivity23ActivityB" android:label="@string/title_activity_main_activity23_activity_b" android:launchMode="standard" //标准模式,默认的模式,每次启动会新创建一个新的activity > </activity>
//每按一次返回键,则activity最上层就出栈了
和standard模式类似singleTop:当单击按钮,打开相应的activity时,会在当前任务栈中,判断栈顶是否为当前的Activity,如果是,就直接使用,如果不是,再创建 新的Activity放入栈顶<activity android:name=".MainActivity23ActivityB" android:label="@string/title_activity_main_activity23_activity_b" android:launchMode="singleTop" >
切换从左往右,则表示退的意思
singleTask:在当前任务栈中,判断栈里是否存在activity,如果不存在,创建一个新的activity入栈,如果存在,会把该activity之上的所有activity清除出栈,显示当前的activity <activity android:name=".MainActivity23ActivityB" android:label="@string/title_activity_main_activity23_activity_b" android:launchMode="singleTask" >
singleInstance:新创建一个任务栈,放入新创建的activtiy,该任务栈只允许存一个activity实例。(比如浏览器,只允许有一个实例),如果已存在,那么会该切换到该任务栈。 <activity android:name=".MainActivity23ActivityB" android:label="@string/title_activity_main_activity23_activity_b" android:launchMode="singleInstance" > </activity>
//决定activity应该怎么启动 public void flagClick(View v){ Intent intent = new Intent(this,MainActivity23Activity5.class); //设置activity启动模式 //Intent.FLAG_ACTIVITY_NEW_TASK : 在新的任务栈中启动Activity //Intent.FLAG_ACTIVITY_CLEAR_TOP: 相当于singTop //Intent.FLAG_ACTIVITY_CLEAR_TASK: 相当于singTask intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK); startActivity(intent); }
//打开网页 public void borsePageClick(View v) { Uri data = Uri.parse("http://ww.baidu.com"); String action = Intent.ACTION_VIEW; Intent intent = new Intent(action, data); startActivity(intent); } //打开拨号面板 public void callPhoneDialClick(View v) { Uri data = Uri.parse("tel:123123"); String action = Intent.ACTION_DIAL; Intent inten = new Intent(action, data); startActivity(inten); } //打电话 public void callPhoneClick(View v) { Uri data = Uri.parse("tel:123123"); String action = Intent.ACTION_CALL; Intent inten = new Intent(action, data); startActivity(inten); } //打开发短信的面板 public void smsDialClick(View v) { Intent intent = new Intent(); String action = Intent.ACTION_VIEW; intent.setAction(action); intent.putExtra("sms_body", "你好啊"); intent.setType("vnd.android-dir/mms-sms"); startActivity(intent); } //发短信,带填写号码 public void smsSendClick(View v) { Uri data = Uri.parse("smsto:123456"); String action = Intent.ACTION_SENDTO; Intent intent = new Intent(action,data); intent.putExtra("sms_body","看到短信了吗"); startActivity(intent); } //打开播放器 public void playMusicClick(View v){ Uri data = Uri.parse("file:///sdcard/Music/xpg.map3"); String action = Intent.ACTION_VIEW; Intent intent = new Intent(); intent.setAction(action); intent.setDataAndType(data,"audio/mp3"); startActivity(intent); } //卸载apk程序 public void uninstallClick(View v){ Uri data = Uri.parse("package:comp.coding");//包,就是主清单中的包名 String action = Intent.ACTION_DELETE; Intent intent = new Intent(action,data); startActivity(intent); } //安装apk public void installClick(View v){ Uri data = Uri.fromFile(new File("/sdcard/Download/hello.apk")); String action = Intent.ACTION_VIEW; Intent intent = new Intent(action); intent.setDataAndType(data,"application/vnd.android.package-archive"); startActivity(intent); }}
0 0
- Android intent intent-filter
- Android intent intent-filter
- Android intent intent-filter
- Android intent
- Android Intent
- Android Intent
- android Intent
- android intent
- android intent
- android intent
- Android------Intent
- android Intent
- Android Intent
- android intent
- Android Intent
- android intent
- Android Intent
- android --------intent
- Linux教程之权限管理
- POJ 1328(贪心)
- 第六周--项目4数制转换
- try catch finally java 异常捕捉
- 一款常用的Android APP框架开发(上)
- android---(Intent)
- 强调相关的类
- 二叉搜索树
- HTML - Amazing HTML
- Linux权限
- plist苹果安装包实现
- 直接修改UIView的x,y,width,height...
- linux下头文件
- hdu5237 Base64(模拟)