編輯:關於Android編程
項目中,為了實現不同fragment之間值得傳遞,首先想到的是利用bundle或者shareprefercnce之類的共享數據機制,當不符合項目需求,有點過於復雜和冗余,就利用網上一位前輩的建議,在主Activity中,創建一個共享的數據變量,在其他fragment中只要獲取到這個值就可以得到數據,實現共享,代碼如下:
主activity定義一個共享數據變量:
private String instrName;
public String getInstrName() {
return instrName;
}
public void setInstrName(String instrName) {
this.instrName = instrName;
}
String instrName = ((MainActivity)getActivity()).getInstrName();
其實難點在於,第一次切換到fragment b中,已經實例化的時候,確實能得到共享的數據,當第二次切換到fragment b,點擊的是其他的列表項,這時候我發現,這個fragment b已經被我隱藏了,並且是這樣的:(已經初始化的fragment就不再初始化,只需要hide隱藏),但是隱藏了之後,這段獲取數據的代碼
String instrName = ((MainActivity)getActivity()).getInstrName();
應該放到哪裡會執行呢?
我的要求是從fragment a一切換到fragment b中就要馬上獲取到共享的數據,並展現在fragment b的列表中?
解決方案其實是有的,以前activity在恢復顯示的時候有一個方法就是監聽顯示是否完成,同樣對於fragment也有類似的方法可以監聽,如下:
@Override
public void onHiddenChanged(boolean hidd) {
if (hidd) {
String instrName = ((MainActivity)getActivity()).getInstrName();
System.out.println(當對沖界面重新恢復顯示時候,得到從開倉單獲取到的商品名稱+instrName+***************++++++++++++*****);
System.out.println(當對沖界面重新恢復顯示時候,得到從開倉單獲取到的商品名稱+instrName+***************++++++++++++*****);
} else {
//相當於Fragment的onPause
String instrName = ((MainActivity)getActivity()).getInstrName();
System.out.println(當對沖界面重新恢復顯示時候,得到從開倉單獲取到的商品名稱+instrName+***************++++++++++++*****);
}
}
這樣在fragment隱藏或者顯示的時候,都能夠獲取到共享的數據。注意點是第一次是需要new一個frament對象,這時候也要得到共享數據,只需要將代碼寫到oonCreateView中即可。
Android開發筆記(一百零九)利用網盤實現雲存儲
網盤存儲個人開發者往往沒有自己的後台服務器,但同時又想獲取app的運行信息,這就要借助於第三方的網絡存儲(也叫網盤、雲盤、微盤等等)。通過讓app自動在網盤上存取文件,可
Android圖片資源的縮放問題
1. 圖片縮放後對齊的問題 在Android的開發中,如何使用圖片對很多開發人員是一個很頭痛的事。最常見的問題是在一台手機上調試好的UI,在不同dpi的手機上會變形。
android ViewPager實現 跑馬燈切換圖片+多種切換動畫
最近在弄個項目,要求有跑馬燈效果的圖片展示。網上搜了一堆,都沒有完美實現的算了還是自己寫吧! 實現原理利用 ViewPager 控件,這個控件本身就支持滑動翻頁很好很強大
android listview ExpandableListView實現多選,單選,全選,edittext實現批量輸入
最近在項目開發中,由於項目的需求要實現一些列表的單選,多選,全選,批量輸入之類的功能,其實功能的實現倒不是很復雜,需求中也沒有涉及到復雜的動畫什麼之類,主要是解決列表數據