標籤:android style blog color io os ar java 檔案
首先我還是要先介紹Intent這個傢伙,沒錯,就是這個傢伙讓我們實現了Activity之間的跳轉切換來著的。 接下來的介紹引用了 enjoy風鈴所寫的《Intent的那些事》的部分內容:
Intent在Android大家庭中是一個活潑的小男孩,從小就是交際草。在代碼中,Activity、Service、BroadcastReceiver這三個重要的大媽級重量組件,之間的調用關聯都是依靠Intent去交流的,例如Activity的startActivity(),Service的startService()、bindService(),BroadcastReceiver的sendBroadcast()、sendOrderBroadcast()等,其中都是需要攜帶一個Intent(或IntentFilter)的參數。
當然Intent中要指定要啟動組件的資訊,或明顯活隱晦。明顯的就是顯式啟動:舉個例子來說就是Intent你去把這東西交給某某(名字)Activity大媽。隱晦的是隱式啟動:當然得不免俗得給例子就是Intent你把這個東東交給昨晚和我一起在菜市場跳廣場舞的那個胖大媽,其中廣場舞和胖就把某大媽給赤果果的定位了。這就是Intent的兩種匹配方式,我都覺得我自己說的怪抽象的了。
接下來就是介紹IntentFilter的好時機了,它就是大媽的兒子(組件的攔截器)。當如果Intent隱式啟動時,Intent會找他的一群小夥伴IntentFilter來,然後問他們說,你們誰的媽昨晚去菜市場跳廣場舞了?你們誰的媽又好胖好胖的?然後IntentFilter各想各媽,哎呀,其中一個IntentFilter拍拍腦袋說,這不就是我媽嗎!然後他就屁顛屁顛的領著Intent去找某Activity媽把東東交給她了。
為了避免大家看不懂上面的例子,我還是發揚一下2B青年的社會責任感,用比較教條的語言來介紹一下Intent和IntentFilter:Intent是一個意圖對象,組件可以通過設定Intent來啟動另外一個組件,有顯式啟動和隱式啟動兩種方法,顯式啟動直接指定要啟動的組件的名字,隱式啟動則指定action、category、data等來啟動合格組件;其中的IntnetFilter就是一個意圖過濾器,它會設定一些過濾規則如action、category、data等,如果Intent中的action、category、data與過濾器中相匹配,則為啟動該過濾器的組件。
接下來就為大家展示一個簡單的跳轉流程及代碼:
首先是建立一個Android項目,項目名自訂,我用Intent_App作為項目的名稱。
接下來在首個Activity的XML頁面中添加一個Button按鈕,id預設是button1;
在XML頁面所對應的MainActivity.java檔案中添加2個方法:(稍後貼上代碼)
findViewById():用來建立一個按鈕對象。
setListener():用來建立事件監聽器。
建立app_intent.xml頁面,用來進行跳轉。建立App_intentActivity.java檔案,在檔案內添加onCreate()事件。
以上就是一個簡單的頁面跳轉流程,小弟不才,寫得很不公整,外加所表達知識點很基礎,還望給為看官海涵。代碼如下:
1 package com.example.intent_app; 2 3 import android.os.Bundle; 4 import android.app.Activity; 5 import android.view.Menu; 6 import android.view.View; 7 import android.view.View.OnClickListener; 8 import android.widget.Button; 9 import android.content.Intent;10 public class MainActivity extends Activity {11 12 private Button myLogin; 13 @Override14 protected void onCreate(Bundle savedInstanceState) {15 super.onCreate(savedInstanceState);16 setContentView(R.layout.activity_main);17 findViewById();18 setListener();19 }20 21 @Override22 public boolean onCreateOptionsMenu(Menu menu) {23 // Inflate the menu; this adds items to the action bar if it is present.24 getMenuInflater().inflate(R.menu.main, menu);25 return true;26 }27 public void findViewById()28 {29 myLogin =(Button)findViewById(R.id.button1); 30 }31 32 public void setListener()33 {34 myLogin.setOnClickListener(new OnClickListener(){35 public void onClick(View v){36 startActivity(new Intent(MainActivity.this,App_intentActivity.class));37 finish();38 }39 });40 }41 }
1 package com.example.intent_app; 2 3 import android.os.Bundle; 4 import android.app.Activity; 5 import android.view.Menu; 6 import android.view.View; 7 import android.view.View.OnClickListener; 8 import android.widget.Button; 9 import android.content.Intent;10 11 public class App_intentActivity extends Activity {12 protected void onCreate(Bundle savedInstanceState) {13 super.onCreate(savedInstanceState);14 setContentView(R.layout.app_intent);15 }16 }
基本沒啥技術含量,作為新手的我還是把它給寫下來了(因為怕忘了)......
PS:每建立一個Activity時記得註冊,我就是忘了註冊這一茬,調了我一兩個小時(樓主英語水平不過2級,勿鄙視~~~~)
AndroidManifest.xml中添加:
1 <activity2 android:name="要註冊的Activity的名字,比如com.example.intent_app.App_intentActivity"3 android:screenOrientation="portrait" >4 </activity>
Android基礎學習之Activity之間的切換