Android開發——fragment中數據傳遞與刷新UI(更改控件)


數據傳遞:

1.通過數據庫進行數據的傳遞

如在fragment中將數據保存在數據庫中,之后其他的fragment或者activity直接讀取數據庫中的數據,數據庫使用還算簡單,這里就不多說,建議使用litepal,簡單的不要不要的

2.通過Bundle實現兩個fragment的數據傳遞

想必大家看到這里,想到的就是使用帶參數的構造函數來實現數據的傳遞吧,我剛開始也是如此,但是,寫上代碼之后,發現有一個提示,就是建議不要使用此方法來實現數據傳遞

那我們怎么辦呢?我們可以使用Bundle來實現

我們在fragment里面新建一個靜態方法,其返回值為一個fragment類,其的參數就是代表的需要傳遞的數據

通過bundle的put將數據存放在bundle中,之后調用fragment的setArguments是fragment攜帶上Bundle

一個fragment最先開始就是會執行onCreate方法,所以我們在這方法來接收我們傳遞的數據

先是通過getArguments來獲得fragment攜帶的Bundle,之后調用Bundle的get方法來獲得數據,賦值給成員變量,圖中isExist和personProperty均是私有全局成員變量

 

 

 之后使用就是這樣使用

PropertyFragment fragment = PropertyFragment.newInstance(personProperty,true);

 

 

 刷新UI:

1.在fragment內部進行更改控件

在activity中,要想刷新UI,需要找到控件的實例,之后調用相關的方法更新UI

同樣的,在fragment之后也是如此,不過有所不同的是, fragment只能在在onViewCreated方法中才能調用findviewbyid找到控件的實例

 

2.在activity中更改控件,需要找到fragment的實例,並且在fragment里面公開一個更改控件的方法

 如果是使用靜態方法(在xml使用name屬性使用fragment),可以通過fragmentManger的findfragmentById或者是findfragmentByTag方法找到fragment的實例

如果是使用的動態方法(用java代碼new一個fragment),那么就不用那么麻煩,可以直接調用fragment里面定義的那個公開的更改控件的方法

3.通過Activity作為中轉,在另外一個fragment更改另外一個fragment的UI

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM