1. 程式人生 > >使用顯式Intent向下一個活動傳遞資料

使用顯式Intent向下一個活動傳遞資料

在啟動活動時傳遞資料的思路很簡單,Intent提供了一系列putExtra()方法的過載,可以把我們想要傳遞的資料暫存在Intent中,啟動了另一個活動後,只需要把這些資料再從Intent中取出取出就可以了。比如說MainActivity中有一個字串,現在想把這個字元傳遞到SecondActivity中,你就可以在MainActivity中這樣子編寫:

btn1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String value="Hello SecondActivity";
                Intent intent=new Intent(MainActivity.this,SecondActivity.class);
                intent.putExtra("key",value);
                startActivity(intent);
            }
        });

其次再在SecondActivity中獲取傳遞過來的Intent,然後通過鍵值對的方式獲取Intent中的鍵值,然後再用TextView控制元件將獲取到的String型別的字串訊息在SecondActivity的佈局上顯示。

activity_main.xml檔案中的程式碼:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:orientation="vertical">

    <TextView
        android:id="@+id/tv_msg"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:text="This is the SecondActivity."
        android:textSize="20sp" />


</LinearLayout>

 

SecondActivity.java中的程式碼:

package com.example.administrator.activitydemo;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;

public class SecondActivity extends AppCompatActivity {
    private TextView tv_msg;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);
        initializeView();
        initializeData();
    }

    private void initializeView() {
        tv_msg=(TextView)findViewById(R.id.tv_msg);
    }

    private void initializeData() {
        Intent intent=getIntent();
        String msg=intent.getStringExtra("key");
        tv_msg.setText(""+msg);
    }
}

這個時候重新執行一下程式,點選btn1按鈕,活動就會從MainActivity跳轉到SecondActiviy,並且將資料傳給SecondActivity中了。效果圖如下: