組件與組件的橋樑----意圖Intent

 大家晚上好,今天我要分享的是組件與組件的橋樑----意圖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在我們開發中是必不可少的工具,少了這個,根本不能好好的完成任務,別看它簡單,用處大多了,麻雀雖小五臟俱全,大家可千萬別小看它哦。晚安,做個好夢。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章