【Android開發學習筆記】【第三課】Activity和Intent

來源:互聯網
上載者:User

標籤:android   style   class   blog   code   java   

  首先來看一個Activity當中啟動另一個Activity,直接上代碼說吧:

 

  (1)首先要多個Activity,那麼首先在res-layout下建立一個 Other.xml,用來充當第二個Activity的布局檔案

    

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical" >        <TextView        android:id="@+id/MyTest"        android:layout_width="wrap_content"        android:layout_height="wrap_content"     /></LinearLayout>

 

   (2)加入一個 src 下加入一個類檔案(java裡是這麼說的嗎,我一直在搞c++,不太清楚java裡面的屬於怎麼說)

    記住類一定要 繼承Activity ( public class *** extends Activity ),然後重寫 onCreate 方法

    

    

package com.example.cart;import android.R.string;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.widget.TextView;public class OtherActivity extends Activity{    private TextView mytext = null;    @Override    protected void onCreate(Bundle savedInstanceState)     {        super.onCreate(savedInstanceState);        setContentView(R.layout.othery);                        mytext = (TextView)findViewById(R.id.MyTest);        mytext.setText("hello activity");    }}

    這個Activity呢,其實很簡單就是只有一個TextView,內容就是“hello activity”

  (3)接下來我們需要在 AndroidManifest.xml 當中註冊這個Activity

     

  (4)我們需要在主的activity當中去調用,具體的做法是 首先在主Activity的布局是只有一個按鈕,然後我們監聽這個按鈕按下事件,

      按下這個按鈕就會通過Intent來調用另一個Activity,也就是我們上面建立的Activity,下面是代碼:

package com.example.cart;import android.app.Activity;import android.app.ActionBar;import android.app.Fragment;import android.content.DialogInterface;import android.content.Intent;import android.view.View.OnClickListener;import android.net.Uri;import android.os.Bundle;import android.view.LayoutInflater;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.ViewGroup;import android.widget.Button;import android.widget.TextView;import android.os.Build;public class MainActivity extends Activity {      public Button mybutton = null;    @Override    protected void onCreate(Bundle savedInstanceState)     {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);                mybutton = (Button)findViewById(R.id.MyButton);        mybutton.setText("nihao-ha2ha");        mybutton.setOnClickListener(new MyButtonListen());        }        class MyButtonListen implements OnClickListener    {        @Override        /* 如果遇到 aetOnclickListener報錯的時候,按照下面來做:
1.把 onClick(DialogInterface arg0, int arg1) 改成 onClick(View v)
2.把 import android.content.DialogInterface.OnClickListener; 改成 import android.view.View.OnClickListener; */
        public void onClick(View v) {            Intent intent = new Intent();            intent.setClass(MainActivity.this, OtherActivity.class);            MainActivity.this.startActivity(intent);                 }    }}

  (5) 運行程式之後,首先進入第一個Activity,點擊了按鈕了之後調轉到了第二個Activity

       

 

  接下來嘗試一個Activity當中啟動另一個Activity的時候,傳遞資料給另一個Activity:

  Intent包含:ComponentName、Action、Data、Extras、Category、Flags,我們就將使用Extra來進行資料的傳遞

     (1)主Activity當中這樣調用

            Intent intent = new Intent();            intent.putExtra("testintent", "ccyy");            intent.setClass(MainActivity.this, OtherActivity.class);            MainActivity.this.startActivity(intent);    

  (2)接受端是這樣的

    protected void onCreate(Bundle savedInstanceState)     {        // TODO Auto-generated method stub        super.onCreate(savedInstanceState);        setContentView(R.layout.othery);                Intent intent = getIntent();        String myvalue = intent.getStringExtra("testintent");                        mytext = (TextView)findViewById(R.id.MyTest);        mytext.setText("hello activity" + myvalue);    }

 

  當然,Intent進行資料傳遞的時候,不僅可以在同一個應用程式的不用Activity直接進行傳遞,而且可以進行不同應用程式的調用和資料傳遞:

  下面通過Uri調用發簡訊的介面來進行說明,代碼還是加到剛才的按鈕相應中:

            Uri uri = Uri.parse("smsto:13008574656");            Intent intent = new Intent(Intent.ACTION_SENDTO, uri);            intent.putExtra("sms_body", "hi,I am a student~");            MainActivity.this.startActivity(intent);

  運行之後,點擊按鈕進入到發簡訊的介面:

  

  

  這次學習主要理解了:

  1.多個Activity

  2.Intent的基本作用

  3.一個Activity當中啟動另一個Activity

  4.使用Intent在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.