大家晚上好,今天我要分享的是組件與組件的橋樑----意圖Intent.意圖Intent負責對應中一次操作的動作,動作涉及數據,附加數據進行描述,Android則根據此Intent的描述,負責找對應的組件,將Intent傳遞給調用的組件,並完成組件的調用,因此,Intent在這裏起的是中介的作用,專門提供組件互相調用的相關信息,實現調用者與被調用者之間的解耦。
很顯然這不是我寫的,我是從老師那抄過來的,專業術語。我今天要講解的是它的兩個實例,其一,Intent的顯示意圖和隱示意圖,其二是Intent的附加數據傳遞。這次就不截圖了,界面簡單,直接詳講就OK.
第一個實例:顯示意圖和隱示意圖
1.顯示意圖
//創建Intent意圖,參數一:本Activity,參數二:跳轉到另外一個界面的Activity
Intent intent=new Intent(IntentActivity.this,OtherActivity.class);
//執行意圖
startActivity(intent);
2.隱示意圖
Intent intent=new Intent();
//設置動作
intent.setAction("cn.it.ANDROID");
startActivity(intent);
然後在另外一個Activity設置AndroidManifest.xml權限
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<!--隱示調用 -->
<category android:name="android.intent.category.DEFAULT" />
<action android:name="cn.it.ANDROID" />
</intent-filter>
第二個實例:Intent附加數據
第一種方式:
Intent intent=new Intent(IntentActivity.this,OtherActivity.class);
//第一種方式:intent.putExtra,好比Map(key,values)
Intent.putExtra("name","小明");
//執行Intent
startActivity(intent);
在另外一個Activity實現數據傳遞,並顯示
//得到Intent
Intent intent = getIntent();
//獲取key值
String name = intent.getStringExtra("name");
第二種方式:
Intent intent=new Intent(IntentActivity.this,OtherActivity.class);
//第二種方式:創建Bundle對象
Bundle bundle=new Bundle();
bundle.putInt("age",12);
//intent添加bundle,實現傳遞
intent.putExtras(bundle);
//執行Intent
startActivity(intent);
在另外一個Activity傳遞,並顯示數據‘
Intent intent = getIntent();
//獲取方式Bunlde
Bundle bundle = intent.getExtras();
int age = bundle.getInt("age");
第三種方式:
傳遞一個類裏面的數據,首先這裏要構架一個傳數據的類ChatMessage.java要實現Serializable接口方可調用。
Intent intent=new Intent(IntentActivity.this,OtherActivity.class);
//構建ChatMessage對象
ChatMessage cm=new ChatMessage();
//賦值
cm.id=2;
cm.message="哈哈,今天是星期六";
//傳遞數據的條件
intent.putExtra("message", cm);
//執行Intent
startActivity(intent);
在另外一個Activity實現傳遞,顯示數據
//得到ChatMessage值,並轉換爲ChatMessage類型
ChatMessage message = (ChatMessage) intent.getSerializableExtra("message");
//獲取Message值
String messageValue = message.message;
今天就到這了,大夥肯定很奇怪吧,應該會有疑問,Intent那麼簡單應該不值得寫博客,但你錯了,意圖Intent在我們開發中是必不可少的工具,少了這個,根本不能好好的完成任務,別看它簡單,用處大多了,麻雀雖小五臟俱全,大家可千萬別小看它哦。晚安,做個好夢。