Android基礎學習之Activity之間的切換

來源:互聯網
上載者:User

標籤: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之間的切換

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.