基於Intent實現Activity與Activity之間的數據傳遞,實現二個Activity的跳轉功能
在講參數傳遞之前,先講下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的跳轉功能