Android学习笔记(七):多个Activity和Intent
根據(jù)www.mars-droid.com:Andriod開發(fā)視頻教學(xué),先跳過書本《Beginning Android 2》的幾個(gè)章,我是這兩個(gè)資源一起看,需要進(jìn)行一下同步。先初步了解一下應(yīng)用具有多個(gè)Activity的處理情況。
視頻中自然不會(huì)如同書本講的仔細(xì),勝在快速明了,反正也只是工具,所以這次主要重點(diǎn)在于如何操作。Intent用于在一個(gè)應(yīng)用中多個(gè)Activity的調(diào)用和數(shù)據(jù)傳遞,也可用于調(diào)用其他服務(wù)(應(yīng)用)。
1、Button觸發(fā)
在《Android學(xué)習(xí)筆記(六):xml和widget》中,我們通過Android XML以及實(shí)現(xiàn)View.OnClickListener接口的方式來處理button觸發(fā)調(diào)用,這里我們采用后一種方式,并做了稍稍改動(dòng)。
?
... ...?
public class Activity01 extends Activity {
??? private Button mybutton = null;
?
??? public void onCreate(Bundle savedInstanceState) {
?????? ... ...
??????? mybutton.setOnClickListener(new MyButtonListener());
??? }
????
??? class MyButtonListener?implements View.OnClickListener{
??? ??? public void onClick(View v) {
??? ?? ? ?? ... ...?/* 在此,我們將調(diào)用另一個(gè)Activity */
??? ??? }
??? }
}
?
2、編寫另一個(gè)Activity
我們編寫一個(gè)簡(jiǎn)單的Activity類OtherActivity,其中只有一個(gè)TextView。
... ...?
public class OtherActivity extends Activity{
??? private TextView myTextView = null;?
???
??? protected void onCreate(Bundle savedInstanceState) {
??? ??? super.onCreate(savedInstanceState);
??? ??? setContentView(R.layout.other);
??? ??? myTextView = (TextView)findViewById(R.id.myTextView);
??? }
}
編寫一個(gè)Activity,必須在AndroidManifest.xml中進(jìn)行注冊(cè):
??? <?xml version="1.0" encoding="utf-8"?>
??? <manifest? ... ...>????
??? ??? <application?android:icon="@drawable/icon" android:label="@string/app_name">
??? ??????? <activity android:name=".Activity01" android:label="@string/app_name">??? ... ...??? </activity>
??? ??? ????<activity android:name=".OtherActivity" android:label="@string/other" /><!-- 在res/values/strings.xml中增加other的定義 <string name="other">It/'s other activity!</string> -->
??? ??? </application>
??? </manifest>
3、通過Intent,在Activity01中調(diào)起OtherActivity,并向OtherActivity傳遞某個(gè)信息
在MyButtonListener中的onClick:
?Intent?intent =?new Intent();
?intent.putExtra("param_str", "Info from Activity01");?//向另一個(gè)Activity傳遞<name,value>,value采用string的格式,也可以是其他
?intent.setClass(Activity01.this, OtherActivity.class);//指出是哪個(gè)Activity,setClass(對(duì)象,類),對(duì)于嵌套類,為了提供良好的閱讀方式并避免奇異,我們都指明是哪個(gè)類
?Activity01.this.startActivity(intent);?//啟動(dòng)另外的Activity,作為View的方法,可以直接使用startActivity,由于嵌套類,這樣些可以清晰一些。
4、在Otherctivity中接受傳遞的信息
?Intent intent =?getIntent();
String value = intent.getStringExtra("param_str");
5、intent也可以調(diào)用其他的應(yīng)用,例如發(fā)送短信
Uri uri = Uri.parse("smsto:0000123456");
Intent intent = new?Intent(Intent.ACTION_SENDTO,uri);//Intent(String?action,Uri?uri)對(duì)uri進(jìn)行某個(gè)操作,ACTION_SENDTO:Send a message to someone specified by the data.
intent.putExtra("sms_body", "This is my text info from Activity01.");?//傳遞SMS的文本內(nèi)容
Activity01.this.startActivity(intent);?//啟動(dòng)另外的Activity,并不限于是否是同一個(gè)應(yīng)用。系統(tǒng)收到相關(guān)消息,將調(diào)起相關(guān)應(yīng)用
?
相關(guān)鏈接:?我的Android開發(fā)相關(guān)文章
轉(zhuǎn)載于:https://www.cnblogs.com/mzsoft/p/4370436.html
總結(jié)
以上是生活随笔為你收集整理的Android学习笔记(七):多个Activity和Intent的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: hdu 4918
- 下一篇: 查看Linux软件信息