1. 程式人生 > >跳轉頁面並返回

跳轉頁面並返回

1.首先新建好專案,設定好圖示。

2.

這是應用自帶的建立Android頁面的方法,可以同時建立類hexml頁面,並將新頁面新增到activity標籤中。

3.activity_main.xml頁面

  1. <RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"
  2.     xmlns:tools="http://schemas.android.com/tools"
  3.     android:layout_width="match_parent"
  4.     android:layout_height="match_parent"
  5.     android:paddingBottom="@dimen/activity_vertical_margin"
  6.     android:paddingLeft="@dimen/activity_horizontal_margin"
  7.     android:paddingRight="@dimen/activity_horizontal_margin"
  8.     android:paddingTop="@dimen/activity_vertical_margin"
  9.     tools:context=".MainActivity">
  10.     <Button
  11.         android:id
    ="@+id/button1"
  12.         android:layout_width="wrap_content"
  13.         android:layout_height="wrap_content"
  14.         android:layout_alignParentTop="true"
  15.         android:layout_centerHorizontal="true"
  16.         android:layout_marginTop="156dp"
  17.         android:onClick="toNewActivity"
  18.         android:text="toNewActivity"
    />
  19. </RelativeLayout>
MainActivity.java頁面
  1. /** 
  2.  * startActivityForSult(Intent intent,int requestCode);   //intent為意圖,用於跳轉;requestCode為請求碼,可以認為代表跳轉事件起始頁面的編號 
  3.  * setResult(int resultCode,Intent data);                 //resultCode為結果碼,可以認為跳轉事件新頁面的編號,data為新頁面想要向起始頁面返回的資料 
  4.  * onResult(int requestCode,int resultCode,Intent data);  //當新頁面帶著data資料往回跳轉時,會進入onResult方法 
  5.  */
  6. package com.example.returnvalue;  
  7. import android.os.Bundle;  
  8. import android.app.Activity;  
  9. import android.content.Intent;  
  10. import android.view.Menu;  
  11. import android.view.View;  
  12. import android.widget.Toast;  
  13. publicclass MainActivity extends Activity {  
  14.     @Override
  15.     protectedvoid onCreate(Bundle savedInstanceState) {  
  16.         super.onCreate(savedInstanceState);  
  17.         setContentView(R.layout.activity_main);  
  18.     }  
  19.     publicvoid toNewActivity(View view){  
  20.         Intent intent=new Intent(this,NewActivity.class);  
  21.         startActivityForResult(intent,1);   //將MainActivity頁面的請求碼定位1
  22.     }     
  23.     @Override
  24.     protectedvoid onActivityResult(int requestCode, int resultCode, Intent data) {  //新頁面跳轉回來會進入該方法
  25.         // TODO Auto-generated method stub
  26.         super.onActivityResult(requestCode, resultCode, data);  
  27.         switch(requestCode){  
  28.         case1:         //判斷是不是由MainActivity頁面進行請求的,如果是則執行case語句
  29.             if(resultCode==RESULT_OK){        //判斷是不是由NewActivity頁面進行跳轉回來的,如果是則進入if語句
  30.                 if(data!=null){  
  31.                     String returnData=data.getStringExtra("return_data");  
  32.                     Toast.makeText(this,"return_data="+returnData,Toast.LENGTH_LONG).show();  
  33.                 }  
  34.             }  
  35.             break;  
  36.         default:  
  37.             break;  
  38.         }  
  39.     }  
  40.     @Override
  41.     publicboolean onCreateOptionsMenu(Menu menu) {  
  42.         // Inflate the menu; this adds items to the action bar if it is present.
  43.         getMenuInflater().inflate(R.menu.main, menu);  
  44.         returntrue;  
  45.     }  
  46. }  

activity_new.xml頁面
  1. <RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"
  2.     xmlns:tools="http://schemas.android.com/tools"
  3.     android:layout_width="match_parent"
  4.     android:layout_height="match_parent"
  5.     android:paddingBottom="@dimen/activity_vertical_margin"
  6.     android:paddingLeft="@dimen/activity_horizontal_margin"
  7.     android:paddingRight="@dimen/activity_horizontal_margin"
  8.     android:paddingTop="@dimen/activity_vertical_margin"
  9.     tools:context=".NewActivity">
  10.     <Button
  11.         android:id="@+id/button1"
  12.         android:layout_width="wrap_content"
  13.         android:layout_height="wrap_content"
  14.         android:layout_alignParentTop="true"
  15.         android:layout_centerHorizontal="true"
  16.         android:layout_marginTop="144dp"
  17.         android:onClick="toFirstActivity"
  18.         android:text="toFirstActivity"/>
  19. </RelativeLayout>

NewActivity.java頁面
  1. package com.example.returnvalue;  
  2. import android.os.Bundle;  
  3. import android.app.Activity;  
  4. import android.content.Intent;  
  5. import android.view.Menu;  
  6. import android.view.View;  
  7. publicclass NewActivity extends Activity {  
  8.     @Override
  9.     protectedvoid onCreate(Bundle savedInstanceState) {  
  10.         super.onCreate(savedInstanceState);  
  11.         setContentView(R.layout.activity_new);  
  12.     }  
  13.     publicvoid toFirstActivity(View view){  
  14.         Intent intent=new Intent();  
  15.         intent.putExtra("return_data","hello");  
  16.         setResult(RESULT_OK,intent);   //將新頁面編號定義為RESULT_OK,也就是-1
  17.         finish();                      //關閉頁面,就是將最上面的Activity移出了棧,並沒有釋放佔用的資源
  18.     }  
  19.     publicvoid onBackPressed(){  
  20.         //super.onBackPressed();       super.onBackPress()是執行系統的預設動作,就是退出當前Activity,所以當我們重寫這個函式時,需要將這一句去掉
  21.         Intent intent=new Intent();  
  22.         intent.putExtra("return_data","hello");  
  23.         setResult(RESULT_OK,intent);   //將新頁面編號定義為RESULT_OK,也就是-1
  24.         finish();                      //關閉頁面,就是將最上面的Activity移出了棧,並沒有釋放佔用的資源
  25.     }  
  26. }  

4.這個例子中要注意重寫onBackPressed方法時要去掉super.onBackPressed。