詳解Android activity與fragment之間的通信交互
前言
縱觀市場,大多數(shù)的APP都采用導航+fragment這種設計模式,如微信,QQ,京東,淘寶,究其原因:簡潔。
在開發(fā)過程中不可避免的會出現(xiàn)fragment與fragment,fragment與activity之間的通信交互問題。
本章講述如何實現(xiàn)fragment與activity之間的通信。
一、APP構成
MainActivity+底部導航欄;
二、通信目的
MainActivity中成員方法test(),fragment中經(jīng)test()方法判斷后,方可執(zhí)行下一步操作,如執(zhí)行界面跳轉(zhuǎn);
例:
public class MainActivity extends Activity{ public boolean mBaiDuSDK_is_Ok = false; public boolean ismBaiDuSDK_is_Ok() { return mBaiDuSDK_is_Ok; } public void setmBaiDuSDK_is_Ok(boolean mBaiDuSDK_is_Ok) { this.mBaiDuSDK_is_Ok = mBaiDuSDK_is_Ok; } }
如上述示例代碼,在fragment中需要對mBaiDuSDK_is_Ok進行值判斷,執(zhí)行界面跳轉(zhuǎn);
三、解決方法
public class Test1Fragment extends Fragment implements OnClickListener { private Activity mActivity; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { mActivity = getActivity();//在界面創(chuàng)建時,定義父Activity view = inflater.inflate(R.layout.fragment_test1, container, false); return view; } @Override public void onViewCreated(View view, Bundle savedInstanceState) { // fragment_test1 布局中的一個測試按鈕 Button test_button= (Button) view.findViewById(R.id. test_button); test_button setOnClickListener(this);//設置按鈕監(jiān)聽事件 super.onViewCreated(view, savedInstanceState); } @Override public void onClick(View view) { // TODO Auto-generated method stub switch (view.getId()) { //測試按鈕監(jiān)聽事件 case R.id.test_button: // mActivity即為代表的父Activity Intent intent = new Intent(mActivity, SecondActivity.class); Log.i("BAIDUSDK", "驗證:" + ((MainActivity) mActivity).ismBaiDuSDK_is_Ok()); //最為關鍵的一步,fragment調(diào)用父activity的成員方法,進行通信 if (((MainActivity) mActivity).ismBaiDuSDK_is_Ok()) { startActivity(intent); } else { Log.e("TEST","請確認mBaiDuSDK_is_Ok是否正常!"); } break; } } }
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
Android Studio中使用jni進行opencv開發(fā)的環(huán)境配置方法
今天小編就為大家分享一篇Android Studio中使用jni進行opencv開發(fā)的環(huán)境配置方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-08-08使用Win10+Android+夜神安卓模擬器,搭建ReactNative開發(fā)環(huán)境
今天小編就為大家分享一篇關于使用Win10+Android+夜神安卓模擬器,搭建ReactNative開發(fā)環(huán)境,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2018-10-10Kotlin中標準函數(shù)run、with、let、also與apply的使用和區(qū)別詳解
相比Java, Kotlin提供了不少高級語法特性。對于一個Kotlin的初學者來說經(jīng)常會寫出一些不夠優(yōu)雅的代碼,下面這篇文章主要給大家介紹了關于Kotlin中標準函數(shù)run、with、let、also與apply的使用和區(qū)別的相關資料,需要的朋友可以參考下。2018-03-03Kotlin Flow封裝類SharedFlow StateFlow LiveData使用
這篇文章主要為大家介紹了Kotlin Flow封裝類SharedFlow StateFlow LiveData使用對比,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-08-08Android使用OKHttp包處理HTTP相關操作的基本用法講解
這篇文章主要介紹了Android使用OKHttp包處理HTTP相關操作的基本用法講解,包括操作如何利用OKHttp操作HTTP請求與處理緩存等內(nèi)容,需要的朋友可以參考下2016-07-07Android開發(fā)實現(xiàn)應用層面屏蔽狀態(tài)欄的方法小結
這篇文章主要介紹了Android開發(fā)實現(xiàn)應用層面屏蔽狀態(tài)欄的方法,結合實例形式分析了Android屏蔽狀態(tài)欄的相關函數(shù)調(diào)用、權限控制及函數(shù)重寫等相關操作技巧,需要的朋友可以參考下2017-08-08