(Android review)顯示意圖啟用與隱式意圖啟用

來源:互聯網
上載者:User

標籤:android   style   http   java   使用   os   io   檔案   

一、基本知識點

1、<activity android:label="第一個activity" android:name=".Main2Activity"/>

label屬性:某個Acivity的標題


2、R檔案不要引錯了,引成Android底層的了


3、intent.setClass(this, Main2Activity.class);
第一個參數:上下文
第二個參數:要啟用的組件的位元組碼檔案


4、顯啟用(明確指定了要啟用的組件)
1)intent.setClass(this, Main2Activity.class);


2)intent.setClassName(this, "com.njupt.multiactivity.Main2Activity");
第二個參數:需要開啟的組件的全類名


3)intent.setClassName(getPackageName(), "com.njupt.multiactivity.Main2Activity");
getPackageName():擷取AndroidManefest中<manifest>節點下的package屬性的值


4)intent.setComponent(new ComponentName(this, Main2Activity.class));


5)Intent intent = new Intent(this,Main2Activity.class);


5、<Button 
android:onClick="open"/>
多個控制項可以激發同一個事件處理函數,這裡激發的open函數


6、隱式意圖啟用(之前啟用瀏覽器什麼的都是這樣乾的)
1)<activity android:name=".Main3Activity" android:label="闅愬紡鎰忓浘嬋€媧葷殑activity">
            <intent-filter >
                <action android:name="com.njupt.action.main3"/>//action的name可以隨便起
                <category android:name="android.intent.category.DEFAULT"/>//這個一定要有,否則會報錯.以上是mini配置
                <category android:name="com.njupt.categroy.main3"/>//沒有太大的意義,加了這一行也不會有太大影響
                <data android:scheme="itcast" android:mimeType="image/jpeg"/>
            </intent-filter>
        </activity>
在AndroidManifest.xml中配置了action、category、data,在代碼中就一定需要進行相應的設定
//指定動作名稱
  intent.setAction("cn.itcast.action.main3");
//設定資料
// intent.setData(Uri.parse("itcast:"));
//設定mime_type
//   intent.setType("image/jpeg");//會自動把data清掉,所以這是應該改成
intent.setDataAndType(Uri.parse("itcast:"), "image/jpeg");


7、mimetype的類型可以在tomcat中找(conf/web.xml)中




8、使用隱式意圖開啟瀏覽器
Intent intent = new Intent();
    intent.setAction("android.intent.action.VIEW");
    intent.setData(Uri.parse("http://www.baidu.com"));

    startActivity(intent);


二、舉例

1、MainActivity

package com.example.multiactivity;import android.net.Uri;import android.os.Bundle;import android.app.Activity;import android.content.ComponentName;import android.content.Context;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.main);}public void open(View view){int id = view.getId();    if(id == R.id.open1){        /**     * 以下示範了顯啟用的5種方式     *///    Intent intent = new Intent();//    intent.setClass(this, MainActivity2.class);//    intent.setClassName(this, "com.example.multiactivity.MainActivity2");//    System.out.println("---------->" + getPackageName());//    intent.setClassName(getPackageName(), "com.example.multiactivity.MainActivity2");//注意了第二個參數都是全類名//    intent.setComponent(new ComponentName(this, MainActivity2.class));        Intent intent = new Intent(this, MainActivity2.class);    startActivity(intent);    }else if(id == R.id.open2){    Intent intent = new Intent();    intent.setAction("hellointent");//    intent.setData(Uri.parse("zhangzetian:"));//    intent.setType("image/jpeg");    intent.setDataAndType(Uri.parse("zhangzetian:"), "image/jpeg");            startActivity(intent);    }else if(id == R.id.open3){    Intent intent = new Intent();    intent.setAction(("android.intent.action.VIEW"));    intent.setData(Uri.parse("http://www.baidu.com"));        startActivity(intent);    }}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}}



2、MainActivity2

package com.example.multiactivity;import android.app.Activity;import android.os.Bundle;public class MainActivity2 extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main2);}}



3、MainActivity3


package com.example.multiactivity;import android.app.Activity;import android.os.Bundle;public class MainActivity3 extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main3);}}


4、在顯啟用和隱式意圖啟用的過程中,其實AndroidManifest.xml檔案是很重要的。故在此附上AndroidManifest.xml的全部代碼:

<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"    package="com.example.multiactivity"    android:versionCode="1"    android:versionName="1.0" >    <uses-sdk        android:minSdkVersion="8"        android:targetSdkVersion="17" />    <application        android:allowBackup="true"        android:icon="@drawable/ic_launcher"        android:label="@string/app_name"        android:theme="@style/AppTheme" >        <activity            android:name="com.example.multiactivity.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>                <activity android:name="com.example.multiactivity.MainActivity2"            android:label="這是第二個Activity"            />                        <activity android:name="com.example.multiactivity.MainActivity3">            <intent-filter >                <action android:name="hellointent"/>                <category android:name="android.intent.category.DEFAULT"/>                <category android:name="asdasd"/>                <data android:scheme="zhangzetian" android:mimeType="image/jpeg"/>            </intent-filter>                    </activity>    </application></manifest>



三、源碼下載:

http://download.csdn.net/detail/caihongshijie6/7792167



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.