1. 程式人生 > >Android 兩個Activity之間傳遞資料及返回

Android 兩個Activity之間傳遞資料及返回

從Activity1帶引數跳轉到Activity2這個經常用到,比較熟悉,但如何從Activity2將資料返回給Activity1呢?這個其實也不麻煩,動手敲一下就知道了。

Activity1程式碼:

public class MainActivity extends ActionBarActivity {

    private Button button;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        button = (Button) findViewById(R.id.main_btn);

        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(MainActivity.this,SecondActivity.class);
                intent.putExtra("data","data");
                startActivityForResult(intent, 99);
            }
        });
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if(requestCode == 99){
            if(resultCode == 88){
                Bundle bundle = data.getExtras();
                String back = bundle.getString("back");
                Toast.makeText(MainActivity.this,back,Toast.LENGTH_SHORT).show();
            }
        }
    }
}
在MainActivity中通過intent.putExtra("data","data");將資料傳遞給第二個Activity,若不需要返回值,直接呼叫startActivity().

這次我們是需要返回值,所以呼叫startActivityForResult(intent, 99);第二個引數為requestcode。在下面的onActivityResult(int requestCode, int resultCode, Intent data) 方法中

,首先判斷requestcode,再判斷resultCode,resultCode是在第二個Activity中,我們呼叫setResult()方法中的一個引數,兩個必須一樣。

下面是第二個Activity的程式碼:

public class SecondActivity extends Activity {

    private static final String TAG = "zh";
    private Button btn2;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.item);

        String str = getIntent().getStringExtra("data");
        Log.i(TAG,str);
        btn2 = (Button) findViewById(R.id.second_btn);

        btn2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent();
                intent.putExtra("back","我是返回的資料");
                setResult(88,intent);
                finish();
            }
        });

    }
當點選第二個Activity上的按鈕後,就會跳轉到第一個Activity,同時彈出一個吐司。

相關推薦

Android Activity之間傳遞資料返回

從Activity1帶引數跳轉到Activity2這個經常用到,比較熟悉,但如何從Activity2將資料返回給Activity1呢?這個其實也不麻煩,動手敲一下就知道了。 Activity1程式碼:public class MainActivity extends A

Android Intent傳值(Activity之間傳遞資料

在兩個Activity之間傳遞資料,最終都是通過Intent傳遞,但設定資料和儲存資料方式有兩種(使用Intent 和 Bundle),分別對應如下: 設定資料(MainActivity.java) 方法一:1.直接用intent.putExtra(“name”,“張三”)

Activity之間傳遞資料的全部方法以及Parcelable介面的用法

兩個Activity之間是通過Intent來完成跳轉的: Intent除了完成跳轉Activity之外還可以封裝資料.在這兩個Activity中,如果傳遞單一的資料,直接把資料封裝進Intent即可: 方法一: 直接把資料封裝進Intent即可: Acti

Android Studio中Activity之間的轉換資料傳遞

在建立好兩個Activity之後,分別命名為 MainActivity 和 SecondActivity。 一,Activity之間的切換         在MainActivity中點選Login Button鍵,然後跳轉到SecondActivity,並將資料傳給Ma

Activity之間資料傳遞(使用簡單的intent方法)

android程式設計學習中,最近在編寫一個簡單的android專案,實現在TwoActivity(書籍列表)中點選LisView的任意item傳遞書名,給ThreeAvtivity(章節列表),通過接收到的資料(書名)確定顯示書的章節目錄,使用的是intent方法。其中T

Activity之間傳遞List資料

一、List<T>的Bean物件,Bean類實現Serializable介面 public class WordReview implements Serializable {

Android 開發】 : Activity之間傳遞資料的幾種方式

在Android開發中,我們通常需要在不同的Activity之間傳遞資料,下面我們就來總結一下在Activity之間資料傳遞的幾種方式。 1. 使用Intent來傳遞資料 Intent表示意圖,很多時候我們都會利用Android的Intent來在各個A

ios delegate代理,多/不同/view之間傳遞資料傳遞批量資料,多個數據

要在view之間傳資料大家都知道用delegate,我這裡談一下心得,適合新手。 網上一搜一大把的傳遞資料,但是都是單個數據,比如-(void)passValue:(NSString*)str; 這有個毛用,我們手機介面那個大,傳一個數據有個錘子用啊?聽說羅永浩在富士康附近

Android fragment之間資料傳遞

一、在Activity把值傳入fragment中可以直接用fragment中的setArguments。 二、兩個fragment之間的資料傳遞 1、首先需在第一個fragment中獲得FragmentManager和FragmentTransction: Fragmen

Activity之間資料傳遞

MainActivity package com.example.mac.sendargs; import android.content.Intent; import android.supp

3. 呼叫另一個Activity,並Activity之間相互傳遞資料

一,在一個Activity中呼叫另一個Activity 利用 android.content.Intent 物件實現從一個Activity跳轉到另一個Activity 例如:從FirstActivity跳轉到SecondActivity /*           關鍵程式碼

Activity之間通過Intent相互(雙向)傳遞資料

兩個Activity通過Intent相互交換資料,在Activity中用一個Button 選擇是否接受資料,不能直接寫在onCreate中否則在Activity1 中獲取從Activity2傳送的資料時會崩潰,原因是因為在Activity中會通過Intent再建立一個Act

AndroidActivity之間簡單通信

idg tin test ide button ima 接收 9.png set 在Android中,一個界面被稱為一個activity,在兩個界面之間通信,采用的是使用一個中間傳話者(即Intent類)的模式,而不是直接通信。 下面演示如何實現兩個activity之間的通

關於Android Activity之間傳遞資料的6種方式

使用Inten的putExtra傳遞 第一個Activity中 ? 1 2 3 4 5 6 //建立意圖物件  Intent intent = new Intent(this,TwoActivity.class);  //設定傳

Activity之間傳遞資料的方式常見問題總結

Activity之間傳遞資料一般通過以下幾種方式實現: 通過intent傳遞資料 通過Application 使用單例 靜態成員變數。(可以考慮 WeakReferences) 持久化(sqlite、share preference、file等)

android studio3》在多activity之間傳遞引數

z.B:啟動一個特定的Activity Intent intent=new Intent(CurrentActivity.this,OtherActivity.class); startActivity(intent); 如果想要傳遞Pra的話,就是i.put...在自動跳出的備選中選擇,有很多型別

Android中不同Activity之間資料傳遞

需要用到的類及方法: 類似:兩個國家做貿易,交易貨物; --傳遞載體:intent(貨船) --需要傳遞的內容:用bundle(集裝箱)包裝的string(某控制元件的值)<bundle是以鍵值

AndroidActivity之間的頁面跳轉帶參傳遞返回

一.普通頁面跳轉 Activity之間進行跳轉需要使用Intent類 Intent 意圖 第一個Activity <Button android:id="@+id/btn_open" android:layout_width="

Android 學習之路一:Activity之間傳遞資料的四種方式

傳遞資料 新建 Activity 在專案中右鍵,選擇 New,繼續選擇中下方的 Activity,最後是 Blank Activity。 此時 Android Studio 會為我們自動新增一個對應的佈局檔案,為佈局檔案中的 TextView 新增 I

【從頭學android】在Activity之間實現介面切換

1.java /** * */ package com.itest; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import andro