Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android自學筆記之Intent 頁面跳轉詳解

Android自學筆記之Intent 頁面跳轉詳解

編輯:關於Android編程

Intent:意圖,協助完成Android各個組件之間的通訊

實現跳轉功能有兩種實現方式:1.無返回值的跳轉 2.有返回值的跳轉

一、無返回值的跳轉實現需要用到的方法:startActivity(intent)

二、有返回值的跳轉實現需要用到的方法:

startActivityForResult(intent,requestCode)//有返回值
onActivityResult(int requestCode,int resultCode,Intent data)//接收返回值A頁面
setResult(resultCode,data)//設置返回值B頁面

 

第一種方法
①創建兩個Acitivity.java兩個xml
②重寫onCreate()方法、setContentView(R.layout.factivity)引入頁面
③在AndroidMainifest.xml中聲明
包括改名字name屬性、有intent_filter的是首啟動頁面
④按鈕初始化(聲明、findViewById)、setOnclickListener()
⑤在onClick()中
Intent intent=new Intent(FActivity.this,SAcitivity.class)
//(上下文對象,)上下文對象也可以聲明一個Context的全局化變量,在使context=this
//目標文件
startActivity(intent);

 

第二種方法

有返回結果的頁面跳轉。
FActivity第一個頁面中:
1、startActivityForResult(intent,requestCode)
第一個參數是Intent對象
第二個參數是請求的一個標志
2、通過startActivityForResult跳轉,接收返回數據的方法:【在按鈕的點擊事件中】
onActivityResult(int requestCode,int resultCode,Intent data)
requestCode:請求的標志(不同的頁面標志不同,通過這個標志接收不同的返回數據)
resultCode:第二個頁面返回的標志(通過這兩個標志判斷是哪個頁面返回的數據)
data:第二個頁面回傳的數據
SActivity第二個頁面中:setResult(resultCode,data)
3、回傳到第一個頁面的實際上是一個Intent對象【在按鈕的點擊事件中】
Intent data = new Intent();
data.putExtra(data,content); //事先初始化了一個變量private String content = 你好;
setResult(2,data);
finish(); //結束當前頁面

 

我將這兩種方法寫在一起,不要需要創建的.class .xml太多了; FActivity.class 關聯factivity.xml,SActivity.class 關聯sactivity.xml。然後在AndroidMainfest.xml加入FActivity,SActivity,然後修改 即哪個.class首先運行。最後運行上述步驟,就可以實現頁面跳轉了:

具體實現:

FActivity.class:

 

package com.example.administrator.activitydemo;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

/**
 * Created by Administrator on 2015/8/31.
 */
public class FActivity extends Activity {
    private Button button;
    private Button bt;
    private Context context;
    private TextView textView;


    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.factivity);

        /*
         *
         *
         * ①創建兩個Acitivity.java兩個xml
          ②重寫onCreate()方法、setContentView(R.layout.factivity)引入頁面
          ③在AndroidMainifest.xml中聲明
              包 括改名字name屬性、有intent_filter的是首啟動頁面
          ④按鈕初始化(聲明、findViewById)、setOnclickListener()
              ⑤在onClick()中
           Intent intent=new Intent(FActivity.this,SAcitivity.class)
                / /(上下文對象,)上下文對象也可以聲明一個Context的全局化變量,在使context=this
                   //目標文件
                 startActivity(intent);
         */
        context = this;

        textView = (TextView) findViewById(R.id.textView);
        button = (Button) findViewById(R.id.button_first);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent=new Intent(context,SActivity.class);
                startActivity(intent);
            }
        });
        bt  = (Button) findViewById(R.id.button2);
        bt.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(context,SActivity.class);
                startActivityForResult(intent,1);
            }
        });
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        if(requestCode==1&&resultCode==2){
            String context = data.getStringExtra(data);
            textView.setText(context);
        }
    }
}

SActivity.class:

 

 

package com.example.administrator.activitydemo;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

/**
 * Created by Administrator on 2015/8/31.
 */
public class SActivity extends Activity {
    private Button button;
    private String context = Hello;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.sactivity);
        button = (Button) findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent data = new Intent();
                data.putExtra(data,context);
                setResult(2,data);
                //銷毀這個頁面
                finish();
            }
        });
    }
}

factivity.xml

 

 



sactivity.xml

 

 



修改主布局AndroidMainfest.xml:

 

 




    
        
        
        
            
       
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved