Android 兩個(gè)Fragment之間傳遞數(shù)據(jù)實(shí)例詳解
Android 兩個(gè)Fragment之間如何傳遞數(shù)據(jù)
FragmentA啟動(dòng)FragmentB,做一些選擇操作后,返回FragmentA,需要把FragmentB里面選擇的數(shù)據(jù)傳回來(lái)。有什么辦法?
Fragment之間不能直接通信,必須通過(guò)Activity來(lái)完成,具體步驟。
1. 在FragmentA中定義通信接口,通過(guò)該接口向Activity發(fā)送數(shù)據(jù)。
public class FragmentA extends Fragment { private onButtonPressListener mListener; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_linmo_select_beitie, container, false); listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { mListener.onOKButtonPressed(selectedBeitie); } }); return view; } @Override public void onAttach(Activity activity) { super.onAttach(activity); try { mListener = (onButtonPressListener) activity; } catch (ClassCastException e) { throw new ClassCastException(activity.toString() + " must implement onOkButtonPressed"); } } public interface onButtonPressListener { void onOKButtonPressed(LinmoBeitieItem item); } }
2. 在Activity中實(shí)現(xiàn)該接口,并通過(guò)該接口向FragmentB傳遞數(shù)據(jù)。
public class MainActivity extends Activity implements FragmentA.onButtonPressListener { @Override public void onOKButtonPressed(LinmoBeitieItem item) { FragmentB fragmentB = (FragmentB)getFragmentManager().findFragmentById(R.id.container); fragmentB.onBeitieSelected(item); } }
3. FragmentB接收到數(shù)據(jù)并處理。
public class FragmentA extends Fragment { public void onBeitieSelected(LinmoBeitieItem item) { // ... } }
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
- Android自定義ViewPagerIndicator實(shí)現(xiàn)炫酷導(dǎo)航欄指示器(ViewPager+Fragment)
- Android Activity與Fragment之間的跳轉(zhuǎn)實(shí)例詳解
- Android中ViewPager獲取當(dāng)前顯示的Fragment
- Android中fragment與activity之間的交互(兩種實(shí)現(xiàn)方式)
- Android基礎(chǔ)之使用Fragment控制切換多個(gè)頁(yè)面
- Android基礎(chǔ)之Fragment與Activity交互詳解
- Android中fragment嵌套fragment問(wèn)題解決方法
- Android Fragment 基本了解(圖文介紹)
- Android 管理Activity中的fragments
- Android的Fragment的生命周期各狀態(tài)和回調(diào)函數(shù)使用
- Android中Fragment的加載方式與數(shù)據(jù)通信詳解
相關(guān)文章
超實(shí)用的Android手勢(shì)鎖制作實(shí)例教程
這篇文章主要介紹了一個(gè)超實(shí)用的Android手勢(shì)鎖制作實(shí)例教程,普通的圓環(huán)形圖標(biāo)變換,在App和系統(tǒng)的鎖屏界面中都可以調(diào)用,需要的朋友可以參考下2016-04-04Android實(shí)現(xiàn)底部導(dǎo)航欄功能(選項(xiàng)卡)
這篇文章主要介紹了Android實(shí)現(xiàn)底部導(dǎo)航欄功能,可以隨意切換不同的頁(yè)面,實(shí)現(xiàn)選項(xiàng)卡功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2015-12-12Android實(shí)現(xiàn)滑動(dòng)標(biāo)簽頁(yè)
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)滑動(dòng)標(biāo)簽頁(yè),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-04-04Android Intent 用法全面總結(jié)及實(shí)例代碼
這篇文章主要介紹了Android Intent 用法全面總結(jié)的相關(guān)資料,并附實(shí)例代碼,需要的朋友可以參考下2016-09-09Android EditText默認(rèn)不彈出輸入法的實(shí)現(xiàn)方法
下面小編就為大家分享一篇Android EditText默認(rèn)不彈出輸入法的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-01-01Android中的SQLite數(shù)據(jù)庫(kù)簡(jiǎn)介
SQLite是Android系統(tǒng)采用的一種開(kāi)源的輕量級(jí)的關(guān)系型的數(shù)據(jù)庫(kù)。這篇文章主要介紹了Android中的SQLite數(shù)據(jù)庫(kù)簡(jiǎn)介,需要的朋友可以參考下2017-03-03Android實(shí)現(xiàn)GridView中的item自由拖動(dòng)效果
在前一個(gè)項(xiàng)目中,實(shí)現(xiàn)了一個(gè)功能是gridview中的item自由拖到效果,實(shí)現(xiàn)思路很簡(jiǎn)單,主要工作就是交換節(jié)點(diǎn),以及拖動(dòng)時(shí)的移動(dòng)效果,下面小編給大家分享具體實(shí)現(xiàn)過(guò)程,對(duì)gridview實(shí)現(xiàn)拖拽效果感興趣的朋友一起看看吧2016-11-11