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
原创粉丝点击