編輯:關於Android編程
android中的意圖有顯示意圖和隱式意圖兩種,
顯示意圖要求必須知道被激活組件的包和class
隱式意圖只需要知道跳轉activity的動作和數據,就可以激活對應的組件
A 主activity B 接收跳轉的activity
步驟
1:在主配置文件中聲明B 至少要聲明一個android:name屬性
[html]
<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>
2:在A的布局文件中一個textview和button,並添加點擊事件
[html]
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="第一個activity" />
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="open"
android:text="跳轉" />
3:點擊事件觸發的集中intent意圖
[java]
/**
* 意圖,描述一個動作,激活一個組件,使用其他的activity需要現在主文件中配置activity的名字等屬性
* intent 要去做一件事
*
* @param view
*/
public void open(View view) {
/**
* 方法一
*/
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);
/**
* 上面三種方法要求必須知道被激活組件的包和class,稱為顯示意圖
*/
// ******************************************************************//
/**
* 隱式意圖只需要知道跳轉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);
}
DemoActivity 不需要做任何事,只要繼承activity,並重寫他的oncreate方法就可以了,這個例子只是測試activity的跳轉的幾個方法
Handler的作用一般是子線程向主線程中傳遞消息,用來主線程處理和UI相關的東西。為什麼要在子線程中用呢,因為如果主線程處理了過多耗時的東西,可能會導致假死,所以一般都
第二十二章、享元模式 享元模式是結構型設計模式之一,是對對象池的一種實現。就像它的名字一樣,共享對象,避免重復的創建。我們常用的String 就是使用了共享模式,所以St
開發環境信息列舉下本篇文章編寫的Demo基本信息 操作系統 Windows 10 家庭中文版 開發工具 Android Studio 2.1 SDK n
Android4.2調試RT3070 WiFi模塊 歷時4天,終於有所收獲,今天來總結一下。 周一 1.PC ubuntu上測試該WiFi模塊