根據www.mars-droid.com:Andriod開發視頻教學,先跳過書本《Beginning Android 2》的幾個章,我是這兩個資源一起看,需要進行一下同步。先初步瞭解一下應用具有多個Activity的處理情況。
視頻中自然不會如同書本講的仔細,勝在快速明了,反正也只是工具,所以這次主要重點在於如何操作。Intent用於在一個應用中多個Activity的調用和資料傳遞,也可用於調用其他服務(應用)。
1、Button觸發
在《Android學習筆記(六):xml和widget》中,我們通過Android XML以及實現View.OnClickListener介面的方式來處理button觸發調用,這裡我們採用後一種方式,並做了稍稍改動。
... ...
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) {
... ... /* 在此,我們將調用另一個Activity */
}
}
}
2、編寫另一個Activity
我們編寫一個簡單的Activity類OtherActivity,其中只有一個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);
}
}
編寫一個Activity,必須在AndroidManifest.xml中進行註冊:
<?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中調起OtherActivity,並向OtherActivity傳遞某個資訊
在MyButtonListener中的onClick:
Intent intent = new Intent();
intent.putExtra("param_str", "Info from Activity01"); //向另一個Activity傳遞<name,value>,value採用string的格式,也可以是其他
intent.setClass(Activity01.this, OtherActivity.class);//指出是哪個Activity,setClass(對象,類),對於嵌套類,為了提供良好的閱讀方式並避免奇異,我們都指明是哪個類
Activity01.this.startActivity(intent); //啟動另外的Activity,作為View的方法,可以直接使用startActivity,由於嵌套類,這樣些可以清晰一些。
4、在Otherctivity中接受傳遞的資訊
Intent intent = getIntent();
String value = intent.getStringExtra("param_str");
5、intent也可以調用其他的應用,例如傳送簡訊
Uri uri = Uri.parse("smsto:0000123456");
Intent intent = new Intent(Intent.ACTION_SENDTO,uri);//Intent(String action,Uri uri)對uri進行某個操作,ACTION_SENDTO:Send a message to someone specified
by the data.
intent.putExtra("sms_body", "This is my text info from Activity01.");
//傳遞SMS的常值內容
Activity01.this.startActivity(intent);
//啟動另外的Activity,並不限於是否是同一個應用。系統收到相關訊息,將調起相關應用
相關連結:
我的Android開發相關文章