天天看點

android:Intent的兩種跳轉

重新寫安卓程式,居然忘記Intent的用法,重新回顧一下,加深一下影響。

在安卓裡面程式設計比較常用的跳轉那就是Intent。Intent的意思是意圖,Intent跳轉有兩種方式,一種就是沒有傳回值的,一種是有傳回值的。

沒有傳回值的用法:

1、建立一個intent,然後把需要的參數傳進去。

Intent intent=new Intent(this, SActivity.class);

一個是Context參數,一個是要跳轉的頁面。

2、調用方法startActivity去跳轉。

startActivity(intent);

有傳回值的用法:

1、建立一個intent,然後把需要的參數傳進去。

Intent intent2=new Intent(this, SActivity.class);

2、調用方法startActivityForResult(Intent intent, int requestCode)

startActivityForResult(intent2, 1);

3、使用有傳回值的那就需要去處理這個傳回值,那就需要去重寫onActivityResult方法。

onActivityResult(int requestCode, int resultCode, Intent data)

  • requestCode :這個是請求碼
  • resultCode: 這個是結果碼
  • data:Intent執行個體

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

if(requestCode==1&&resultCode==2){

String string = data.getStringExtra(“data”);

mTextView.setText(string);

}

}

4、跳轉後的頁面需要處理 setResult(int resultCode, Intent data)方法。

setResult(2, intent);

最後代碼呈上:

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

public class FActivity extends Activity implements OnClickListener{
    private Button mButton;
    private Button mButton2;
    private TextView mTextView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_f);
        mTextView =(TextView) findViewById( R.id.textView1);
        mButton=(Button) findViewById(R.id.button1);
        mButton2=(Button) findViewById(R.id.button2);
        mButton.setOnClickListener(this);
        mButton2.setOnClickListener(this);


    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if(requestCode==1&&resultCode==2){
            String string = data.getStringExtra("data");
            mTextView.setText(string);
        }
    }


    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        switch (v.getId()) {
        case R.id.button1:
            Intent intent=new Intent(FActivity.this, SActivity.class);
            startActivity(intent);
            break;
        case R.id.button2:
            Intent intent2=new Intent(FActivity.this, SActivity.class);
            startActivityForResult(intent2, 1);
            break;  
        default:
            break;
        }
    }
}


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

public class SActivity extends Activity implements OnClickListener{
    private Button mButton;
    String data="你好";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_s);
        mButton =(Button) findViewById(R.id.button3);
        mButton .setOnClickListener(this);
    }
    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        Intent intent=new Intent();
        intent.putExtra("data", data);
        //添加資料,然後回傳給之前的頁面
        setResult(2, intent);
        finish();
    }

}

activity_f代碼:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".FActivity" >

    <Button
        android:id="@+id/button1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/textView1"
        android:text="Button" />

    <Button
        android:id="@+id/button2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/button1"
        android:text="Button" />

    <TextView
        android:id="@+id/textView1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:text="@string/hello_world" />

</RelativeLayout>

activity_s代碼:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".SActivity" >

    <Button
        android:id="@+id/button3"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:text="Button" />

</RelativeLayout>
           

總結完了。