Android實現(xiàn)Activities之間進行數(shù)據(jù)傳遞的方法
本文實例講述了Android實現(xiàn)Activities之間進行數(shù)據(jù)傳遞的方法。分享給大家供大家參考。具體分析如下:
首先,先說明一下Activity的啟動及關閉:
1. startActivity(Intent intent); 啟動Activity
finish(); 結束當前Activity
2. startActivityForResult(Intent intent, int requestCode); 以指定的請求碼requestCode啟動Activity
finishAcitivity(int requestCode); 結束以startActivityForResult(Intent intent, int requestCode)方法啟動的Activity
假如有多個Activity,那么我們要關閉其中一個,那么就可以設置requestCode,來關閉相對應的Activity。
接著,我們來講數(shù)據(jù)傳遞。問題是這樣的:假如我們從頁面A到頁面B,A中有一些數(shù)據(jù),比如用戶信息(用戶名,賬號,密碼等),從A中進入到頁面B,在B中我們要獲取這些數(shù)據(jù)信息,要怎么進行傳遞呢?
Intent提供了各種方法來攜帶額外的數(shù)據(jù)信息:
putExtras(Bundle data):向Intent中放入藥攜帶的數(shù)據(jù)包
Bundle getExtras():取出Intent中攜帶的數(shù)據(jù)包,得到的是一個Bundle對象
putExtra(String name, Xxx value):向Intent中按照鍵值對key-value形式存入數(shù)據(jù)信息
getXxx(String name):從Intent中按照key獲取相對應的數(shù)據(jù)信息
putXxx(String key, Xxx data):向Bundle中放入Xxx類型的數(shù)據(jù)信息
getXxx(String key):從Bundle中獲取key對應的數(shù)據(jù)信息
putSerializable(String key, Serializable data):向Bundle中放入一個可以序列化的對象
getSerializable(String key, Serializable data):從Bundle中取出一個可以序列化的對象
有了以上的這些方法我們就可以進行數(shù)據(jù)傳遞了:
方法如下:
1. 在頁面A中點擊按鈕bn,跳轉(zhuǎn)到頁面B代碼如下:
int requestCode = 0;
bn.setOnClickListener(new OnClickListener())
{
@Override
public void onClick(View source)
{
Intent intent= new(A.this, B.class);
startActivityForResult(intent, inquestCode);
//打開指定的Activity B,并等待返回的結果,
//其中inquestCode是請求碼
}
}
2. 在B頁面中添加數(shù)據(jù),代碼如下:
Intent intent = getIntent();
//獲取當前啟動的Acitivity B所對應的Intent
intent.putExtra("數(shù)據(jù)內(nèi)容","我是李明");
//向Intent中綁定數(shù)據(jù)信息"我是李明"
B.this.setResult(1, intent);
//設置結果碼,并設置結束之后退回的Activity
B.this.finish();
3. 在A中獲取數(shù)據(jù)信息,代碼如下:
在頁面A中,為了獲取B中返回的結果,我們應該重寫A頁面中的onActivityResult()方法,當B返回結果時,這個方法將會被調(diào)用:
String myData;
@override
public void onAcitivityResult(int requestCode,int resultCode,Intent intent)
//重寫該方法以回調(diào)方式來獲取B返回的結果
{
if(requestCode==0&&resultCode==1)
{
Bundle data = intent.getExtras();
String myResultData = data.getString("數(shù)據(jù)內(nèi)容");
//這樣myResultData就是我們要從B中傳遞過來的數(shù)據(jù)信息了
}
}
總結,通過使用Intent中的方法我們可以實現(xiàn)不同Activity之間的數(shù)據(jù)傳遞,通過設置標識碼和結果碼,我們可以有選擇的打開關閉不同的Activity,這就是Activity之間的數(shù)據(jù)傳遞。
希望本文所述對大家的Android程序設計有所幫助。
相關文章
android設置adb自帶screenrecord錄屏命令
這篇文章主要介紹了android設置adb自帶screenrecord錄屏命令,需要的朋友可以參考下2018-11-11
Android開發(fā)實現(xiàn)AlertDialog中View的控件設置監(jiān)聽功能分析
這篇文章主要介紹了Android開發(fā)實現(xiàn)AlertDialog中View的控件設置監(jiān)聽功能,結合實例形式分析了Android針對AlertDialog中的控件使用View進行監(jiān)聽的相關操作技巧,需要的朋友可以參考下2017-11-11
Android Studio配合WampServer完成本地Web服務器訪問的問題
這篇文章主要介紹了Android Studio配合WampServer完成本地Web服務器訪問,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-10-10
Android實現(xiàn)頁面翻轉(zhuǎn)和自動翻轉(zhuǎn)功能
這篇文章主要介紹了Android中簡單實現(xiàn)頁面翻轉(zhuǎn)和自動翻轉(zhuǎn)的功能,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-10-10
Android仿新浪微博oauth2.0授權界面實現(xiàn)代碼(2)
這篇文章主要為大家詳細介紹了Android仿新浪微博oauth2.0授權界面實現(xiàn)代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-11-11
Rxjava2_Flowable_Sqlite_Android數(shù)據(jù)庫訪問實例
下面小編就為大家分享一篇Rxjava2_Flowable_Sqlite_Android數(shù)據(jù)庫訪問實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-02-02
Android webview 遇到android.os.FileUriExposedException錯誤解決辦法
這篇文章主要介紹了Android webview 遇到android.os.FileUriExposedException錯誤解決辦法的相關資料,希望通過本文能幫助到大家,讓大家遇到這樣的問題解決,需要的朋友可以參考下2017-10-10
android創(chuàng)建optionsmenu的方法
這篇文章主要介紹了android創(chuàng)建optionsmenu的方法,實例分析了Android菜單項的設置與創(chuàng)建技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-07-07

