1. 程式人生 > >基於Intent實現Activity與Activity之間的數據傳遞,實現二個Activity的跳轉功能

基於Intent實現Activity與Activity之間的數據傳遞,實現二個Activity的跳轉功能

set second start pub category 方式 nds efi dac

在講參數傳遞之前,先講下intent的定義:

Intent intent = new Intent(MainActivity.this,SecondActivity.class); //這是顯式定義

如果是隱式定義,隱式Intent通過在AndroidManifest.xml中<activity>標簽下配置<intent-filter>的內容,可以指定當前活動能夠響應的action和category。

<activity android:name=".SecondActivity" >

  <intent-filter>

<action android:name=
"com.example.activitytest.ACTION_START" />

<category android:name="android.intent.category.DEFAULT" />

<category android:name="com.example.activitytest.MY_CATEGORY"/>

</intent-filter>

</activity>

1、靜態變量傳遞數據:

變量定義時一定要設置成public static,在第二個將打開的Activity進行定義,在第一個Activity對即將打開的Activity的靜態變量進行賦值。

(1)public class FirstActivity extends Activity {

SecondActivity.ddd = 100;//設置靜態變量傳遞的參數

(2)public class SecondActivity extends Activity{

public static int ddd;這裏定義

textview.setText("靜態變量:"+ddd);這裏獲取第一個Activity傳過來的ddd參數

2、通過putExtra傳遞數據:

putExtra(key,value);//攜帶參數發送到另一個頁面

String name = intent.getStringExtra(key);//獲取傳送過來的字符串

下面是發送參數代碼:

Intent intent = new Intent(MainActivity.this, ShowActivity.class);//實例化一個inent

intent.putExtra("name", "大家好");//為putExtra添加需要傳遞的參數

startActivity(intent);

下面是獲取代碼:

Intent intent = getIntent();//獲取一個intent對象

String name = intent.getStringExtra("name");//獲取傳遞過來的值

textview.setText("putExtra傳參:"+name);

3、全局變量傳遞數據

創建一個類繼承Application在設置變量,並設置get方法獲取變量的值

在AndroidManifest.xml的application裏面添加android:name=".Defind" //Defind為類名

defind = (Defind) getApplication();//在使用的類裏面通過getApplication獲取全局變量類的對象

這個方式支持開發者自己定義一個類來進行傳參,但是該類需要在AndroidManifest.xml中聲明出來,

在AndroidManifest.xml的application裏面添加android:name並給name賦值為類名,然後在類裏面通過

getApplication獲取全局變量類的對象,再對該對象進行操作。

4、數據包Bundle傳遞數據

下面是參數發送代碼:

Bundle b = new Bundle();//創建Bundle對象

b.putString(‘name‘,‘姓名‘);//往Bundle對象添加傳遞的參數

b.putInt(‘age‘,1);//往Bundle對象添加傳遞的參數

intent.putExtras(b);在intent裏面添加Bundle對象

下面是獲取參數代碼:

Bundle data = intent.getExtras();//獲取傳遞過來的Bundle對象

data.getString(‘name‘);//通過Bundle對象的key獲取值

data.getInt(‘age‘);////通過Bundle對象的key獲取值

基於Intent實現Activity與Activity之間的數據傳遞,實現二個Activity的跳轉功能