Android學習筆記(七):多個Activity和Intent

來源:互聯網
上載者:User

根據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開發相關文章

相關文章

聯繫我們

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