Android中的Intent標準跳轉應用

1)   Intent無參數Activity跳轉 java

大部分的Android應用程序都是有多個頁面(即 Activity)組成,那麼Activity之間的跳轉就成爲了一個最重要的操做,咱們在Android中使用Intent對象來實現界面之間的跳轉。Intent實現界面之間的跳轉經常使用兩種語法形式實現: android

第一種:Intent intent = new Intent(Activity.this, 目標Activity.class); 佈局

第二種:Intent intent = new Intent(); this

Intent.setClass(Activity.this, 目標Activity.class); spa

Ø  應用案例 xml

實現兩個Activity之間的無參數跳轉應用。 對象

Ø  實現效果參考圖 事件

Ø  局部關鍵實現代碼 圖片

l  Activity_first.xml佈局文件對按鈕的聲明 字符串

<Button

              android:id="@+id/btnGoto"

              android:layout_width="fill_parent"

              android:layout_height="wrap_content"

                  android:text="跳轉至第2Activity"/>

l  Activity_second.xml佈局文件對按鈕的聲明

<Button

              android:id="@+id/btnGoto"

              android:layout_width="fill_parent"

              android:layout_height="wrap_content"

                  android:text="跳轉至第1Activity"/>

l  AndroidManifest.xml清單文件中對窗體的聲明

<activity

           android:name=".FirstActivity"

           android:label="案例10.1 無參數跳轉界面1">

       <intent-filter>

       <actionandroid:name="android.intent.action.MAIN"/>

<categoryandroid:name="android.intent.category.LAUNCHER"/>

       </intent-filter>

           </activity>

           <activity

           android:name=.SecondActivity"

                  android:label="案例10.1 無參數跳轉界面2"/>

l  FirstActivty.java中【跳轉至第2Activity】單擊事件代碼

               Intent
intent =
newIntent(FirstActivity.this,

                                SecondActivity.class);

              startActivity(intent);

l  SecondActivity.java中【跳轉至第1Activity】單擊事件代碼

               Intent
intent =
newIntent();

              intent.setClass(SecondActivity.this,                                          FirstActivity.class);

              startActivity(intent);

2)Intent帶參數Activity跳轉(使用Intent.putExtraBundle

窗體之間的跳轉也須要參數的傳遞,咱們在Android中實現窗體之間的參數傳遞主要有兩種方式:一種是採用putExtra()方法;另外一種是採用Bundle對象進行參數封裝傳遞。

第一種:使用putExtra()方法實現參數傳遞

Ø  方法語法:putExtra(String name, Object value);

Ø  參數說明:name:表明參數的變量名稱,
value
:表明參數的值

該方法爲Intent對象中的一個方法,使用intent.putExtra(……)來實現參數的設置,那另外一端接受方須要獲取發送方傳入的Intent對象,同時從Intent對象中經過設置的參數名稱獲取相應的參數值並進行處理,在這裏要注意的是除字符串類型的參數外,其他類型的參數獲取的時候都須要有默認值,以備沒法正常獲取參數時,使用默認值替代。

Ø  應用案例

                實現兩個窗體之間的跳轉並使用Intent對象的putExtra方法完成參數

的傳遞。設置參數後,任然使用startActivity(intent)方法進行頁面之間的跳轉動做。

Ø  實現參考圖

Ø  局部關鍵實現代碼

l  SendActivity.java中【發送消息】單擊事件動做處理代碼

            Intent
intent =
newIntent(SendActivity.this,

                     ReceiveActivity.class);

           String name = txtName.getText().toString();

           int age = Integer.parseInt(txtAge.getText().toString());

           intent.putExtra("name", name);

           intent.putExtra("age", age);

           startActivity(intent);

l  ReceiveActivity.java中獲取Intent攜帶參數並顯示的處理代碼

            Intent
intent =
this.getIntent();

           String name = intent.getStringExtra("name");

           int age = intent.getIntExtra("age", 0);

           this.txtMessage.setText("姓名:"+name+"\n年齡:"+age);

    第二種:使用Bundle對象實現參數封裝後頁面跳轉傳值

Ø  構造方法:Bundle bundle = new Bundle();

Ø  對象方法:putXXXX(String name, Object value); 設置傳遞參數,XXXX表明傳遞參數的類型。

Ø  參數說明:name:表明參數的變量名稱,
value
:表明參數的值

Bundel對象使用putXXXX()方法將待傳遞的參數封裝到Bundle對象中,使用Intent對象的putExtras(Bundle bundle)方法將參數總體打包進行傳遞,要獲取發送方傳入的Bundel對象的時,使用getExtras()方法獲取Bundel對象,同時使用getXXX(String name)方法獲取Bundle中封裝的某個具體參數的變量名稱。在這裏要注意的是除字符串類型的參數外,其他類型的參數獲取的時候都須要有默認值,以備沒法正常獲取參數時,使用默認值替代。

Ø  應用案例

實現一個新用戶信息註冊並顯示註冊信息的功能,該功能使用Bundle對象完成多參數的封裝傳遞,並在接收方實現對Bundle封裝數據的處理操做。

Ø  實現參考圖片

Ø  局部關鍵實現代碼

l  RegisterActivity.java【立刻註冊】按鈕單擊事件處理代碼

// 步驟1:獲取編輯文本框中用戶輸入的數據

               String name = txtName.getText().toString();

               String dept = txtDept.getText().toString();

               String job = txtJob.getText().toString();

               String email = txtEmail.getText().toString();

               // 步驟2:建立Bundled對象並將數據進行封裝

               Bundle bundle = newBundle();

               bundle.putString("name", name);

               bundle.putString("dept", dept);

               bundle.putString("job", job);

               bundle.putString("email", email);

               // 步驟3:建立Intent對象

               Intent intent = newIntent();

               intent.setClass(RegisterActivity.this,

ResultActivity.class);

               // 使用putExtras()方法將Bundle對象裝載到Intent

               intent.putExtras(bundle);

startActivity(intent);

l  ResultActivity.java 接受Bundle封裝的數據並進行獲取顯示

// 步驟1:獲取Intent對象

               Intent intent = this.getIntent();

               // 步驟2:使用getExtras()方法獲取Bundle對象

               Bundle bundle =
intent.getExtras();

               // 步驟3:使用getXXX(String name)方法獲取Bundle中的對應數據

               String name =
bundle.getString(
"name");

               String dept =
bundle.getString(
"dept");

               String job =
bundle.getString(
"job");

               String email =
bundle.getString(
"email");

               this.txtMessage.setText("姓名:" + name + "\n部門:" +dept

+ "\n職位:" + job+ "\n電子郵箱:" + email);

做者:中軟卓越天津ETC

相關文章
相關標籤/搜索