Android Intent實現頁面跳轉

什麼是Intent android

    Intent能夠理解爲信使(意圖) app

    由Intent來協做完成Android各個組件之間的通信, 也能夠說是實現頁面與頁面之間的跳轉 ide

Intent實現頁面之間的跳轉佈局

  1. startActivity(intent)        //第一種方式啓動
  2. startActivityForResult(intent, requestCode); //第二種啓動方式

    onActivityResult(int requestCode, int resultCode, Intent data)this

    setResult(resultCode, data);spa

第一種啓動方式實現直接跳轉,無返回值3d

第二種啓動方式A頁面->B頁面, B頁面也能回傳到A頁面數據code

onActivityResult(int requestCode, int resultCode, Intent data)xml

這個是 用來A頁面接收B頁面回傳的數據用的對象

setResult(resultCode, data) 這個是用來B頁面回傳給A頁面數據

首先建立一個項目

新建兩個Activity

 

而後再layout 裏面新建兩個頁面佈局 layout右鍵ànewàAndroid XML File

隨後,進行綁定,例如:

而後,配置清單文件AndroidManifest.xml

而後,在activity_first 插入兩個button 一個textview 分別用來第一個和第二個跳轉方式, 以及數據回傳,代碼以下:

 

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3  android:layout_width="match_parent"
 4  android:layout_height="match_parent"
 5  android:orientation="vertical" >
 6 
 7     <Button  8         android:id="@+id/bt_first"
 9  android:layout_width="match_parent"
10  android:layout_height="wrap_content"
11  android:text="第一種啓動方式" />
12 
13     <Button 14         android:id="@+id/bt_Second"
15  android:layout_width="match_parent"
16  android:layout_height="wrap_content"
17  android:text="第二種啓動方式" />
18 
19     <TextView 20         android:id="@+id/textview"
21  android:layout_width="match_parent"
22  android:layout_height="wrap_content"
23  android:text="把第二個頁面回傳的數據顯示" />
24 
25 </LinearLayout>

剛纔提到了,實現跳轉須要用到Intent意圖,代碼很簡單 清晰明瞭 我直接貼代碼了

首先 FirstActivity

 1 package com.example.intentdemo;  2 
 3 import android.app.Activity;  4 import android.content.Intent;  5 import android.os.Bundle;  6 import android.view.View;  7 import android.view.View.OnClickListener;  8 import android.widget.Button;  9 import android.widget.TextView; 10 
11 public class FirstActivity extends Activity { 12  Button bt_first, bt_second; 13  TextView textView; 14 
15  @Override 16     protected void onCreate(Bundle savedInstanceState) { 17         super.onCreate(savedInstanceState); 18  setContentView(R.layout.activity_first); 19 
20  initView(); 21  } 22 
23     private void initView() { 24         // 關聯控件
25         bt_first = (Button) findViewById(R.id.bt_first); 26         bt_second = (Button) findViewById(R.id.bt_Second); 27         textView = (TextView) findViewById(R.id.textview); 28         bt_first.setOnClickListener(new OnClickListener() { 29 
30  @Override 31             public void onClick(View arg0) { 32                 // 第一種跳轉,無數據返回跳轉
33                 Intent intent = new Intent(FirstActivity.this, 34                         SecondActivity.class); 35                 intent.putExtra("content", "第一種跳轉方式"); 36  startActivity(intent); 37  } 38  }); 39         bt_second.setOnClickListener(new OnClickListener() { 40 
41  @Override 42             public void onClick(View arg0) { 43                 // 第二種方式,有數據返回跳轉
44                 Intent intent = new Intent(FirstActivity.this, 45                         SecondActivity.class); 46                 intent.putExtra("content", "第二種跳轉方式"); 47 
48                 /*
49  * 第一個參數是intent對象 第二個參數的請求的一個標識 50                  */
51                 startActivityForResult(intent, 1); 52  } 53  }); 54  } 55 
56     /*
57  * 經過startActivityForresult跳轉,接收返回數據的方法 requestCode:請求的標識 58  * resultCode:第二個頁面返回的標識 data:第二個頁面回傳的數據 59      */
60 
61  @Override 62     protected void onActivityResult(int requestCode, int resultCode, Intent data) { 63         super.onActivityResult(requestCode, resultCode, data); 64         if (requestCode == 1) { 65             if (resultCode == 1) { 66                 String text = data.getStringExtra("content"); 67  textView.setText(text); 68  } 69  } 70  } 71 }

SecondActivity代碼以下:

 1 package com.example.intentdemo;  2 
 3 import android.app.Activity;  4 import android.content.Intent;  5 import android.os.Bundle;  6 import android.view.View;  7 import android.view.View.OnClickListener;  8 import android.widget.Button;  9 import android.widget.TextView; 10 
11 public class SecondActivity extends Activity { 12  TextView textView; 13  Button button; 14  @Override 15     protected void onCreate(Bundle savedInstanceState) { 16         super.onCreate(savedInstanceState); 17  setContentView(R.layout.activity_second); 18         //獲取第一個頁面的意圖
19         Intent intent = getIntent(); 20         
21         button = (Button) findViewById(R.id.button); 22         textView = (TextView) findViewById(R.id.textview); 23         //接收第一個頁面傳送的數據
24         textView.setText(intent.getStringExtra("content")); 25         button.setOnClickListener(new OnClickListener() { 26             
27  @Override 28             public void onClick(View arg0) { 29                 setResult(1, new Intent().putExtra("content", "從第二個頁面返回")); 30                 //結束當前頁面
31  finish(); 32  } 33  }); 34  } 35 }

 

 

 

這樣就簡單的實現了,

若是有不懂的能夠在下面發,我看到會幫你解決,Android其餘問題也能夠

下面貼上Demo:https://pan.baidu.com/s/16HEQ1pVnpB995i3-lAG7qw

相關文章
相關標籤/搜索