Android學習筆記:02.Activity和Intent

一、多個Activity之間的關係


1.Activity01和Activity02可以是同一程序的activity,也可以是不同程序的;

2.Activity01調用startActivity方法,傳一個intent對象,來實現Activity01切換到Activity02;

二、Intent的基本作用:Intent就像一個請求


Component name:指定我要啓動哪一個組件

Action:啓動這個組件後,指定這個組件要做什麼

Data:一個組件向另外一個組件傳遞的數據

Extras:鍵值對,一個組件的鍵值對,通過intent對象傳遞到另外一個組件的鍵值對

三、在一個Activity中啓動另外一個Activity的方法:

(1)複寫Activity的方法:右鍵/Source/Override/ImplementMethods/勾選下圖:


(2)爲Activity創建佈局文件:右鍵layout/new/file,輸入文件名(文件名中不能有大寫字母,後綴爲.xml)

public class Activity02 extends Activity {

         privateButton myButton = null;

         //複寫父類當中的onCreate方法,Activity第一次運行時會調用這個方法

   @Override

   public void onCreate(Bundle savedInstanceState) {

       super.onCreate(savedInstanceState);

       //爲Activity設置佈局管理文件

       setContentView(R.layout.main);

       myButton = (Button)findViewById(R.id.myButton);

       //爲按鈕對象設置監聽器對象

       myButton.setOnClickListener(new MyButtonListener());

    }

   //以下是一個內部類,這個內部類的對象是一個監聽器

   class MyButtonListener implements OnClickListener{

             //生成該類的對象,並將其註冊到控件上。如果該控件被用戶按下,就會執行onClick方法

                   @Override

                   publicvoid onClick(View v) {

                            //生成一個Intent對象

                            Intent intent = new Intent();

                            //在Intent對象當中添加一個鍵值對

                            intent.putExtra("testIntent","123");

                            //設置Intent對象要啓動的Activity, Activity02.this傳遞到OtherActivity.class

                            intent.setClass(Activity02.this,OtherActivity.class);

                            //通過Intent對象啓動另外一個Activity

                            Activity02.this.startActivity(intent);

                            /**以下的4行代碼將啓動發送短信的Activity

                                     Uriuri = Uri.parse("smsto://0800000123");   

                                     Intentintent = new Intent(Intent.ACTION_SENDTO, uri);   

                                     intent.putExtra("sms_body","The SMS text");   

                                     startActivity(intent);

                             */

                   }            

    }

}

四、被啓動的Activity接受intent傳遞過來的鍵值對

//取得從上一個Activity當中傳遞過來的Intent對象
Intent intent = getIntent();
//從Intent當中根據key取得value
String value = intent.getStringExtra("testIntent");

//根據控件的ID得到響應的控件對象
myTextView = (TextView)findViewById(R.id.myTextView);
//爲控件設置Text值
myTextView.setText(value);

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