詳解Android activity與fragment之間的通信交互
前言
縱觀市場(chǎng),大多數(shù)的APP都采用導(dǎo)航+fragment這種設(shè)計(jì)模式,如微信,QQ,京東,淘寶,究其原因:簡(jiǎn)潔。
在開(kāi)發(fā)過(guò)程中不可避免的會(huì)出現(xiàn)fragment與fragment,fragment與activity之間的通信交互問(wèn)題。
本章講述如何實(shí)現(xiàn)fragment與activity之間的通信。
一、APP構(gòu)成
MainActivity+底部導(dǎo)航欄;
二、通信目的
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中需要對(duì)mBaiDuSDK_is_Ok進(jìn)行值判斷,執(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)建時(shí),定義父Activity
view = inflater.inflate(R.layout.fragment_test1, container, false);
return view;
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
// fragment_test1 布局中的一個(gè)測(cè)試按鈕
Button test_button= (Button) view.findViewById(R.id. test_button);
test_button setOnClickListener(this);//設(shè)置按鈕監(jiān)聽(tīng)事件
super.onViewCreated(view, savedInstanceState);
}
@Override
public void onClick(View view) {
// TODO Auto-generated method stub
switch (view.getId()) {
//測(cè)試按鈕監(jiān)聽(tīng)事件
case R.id.test_button:
// mActivity即為代表的父Activity
Intent intent = new Intent(mActivity, SecondActivity.class);
Log.i("BAIDUSDK", "驗(yàn)證:" + ((MainActivity) mActivity).ismBaiDuSDK_is_Ok());
//最為關(guān)鍵的一步,fragment調(diào)用父activity的成員方法,進(jìn)行通信
if (((MainActivity) mActivity).ismBaiDuSDK_is_Ok()) {
startActivity(intent);
} else {
Log.e("TEST","請(qǐng)確認(rèn)mBaiDuSDK_is_Ok是否正常!");
}
break;
}
}
}
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Android從Fragment跳轉(zhuǎn)到其他Activity的簡(jiǎn)單實(shí)例
- Android開(kāi)發(fā)使用Activity嵌套多個(gè)Fragment實(shí)現(xiàn)橫豎屏切換功能的方法
- Android 中Fragment與Activity通訊的詳解
- Android中Activity和Fragment傳遞數(shù)據(jù)的兩種方式
- Android鬧鐘啟動(dòng)時(shí)間設(shè)置無(wú)效問(wèn)題的解決方法
- 安卓(Android)開(kāi)發(fā)之統(tǒng)計(jì)App啟動(dòng)時(shí)間
- 準(zhǔn)確測(cè)量 Android 應(yīng)用中 Activity 和 Fragment 的啟動(dòng)時(shí)間的詳細(xì)過(guò)程
相關(guān)文章
Android打開(kāi)淘寶客戶端(手淘)效果及實(shí)現(xiàn)代碼
這篇文章主要介紹了Android打開(kāi)淘寶客戶端(手淘)效果及實(shí)現(xiàn)代碼,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2018-04-04
Android中實(shí)現(xiàn)記事本動(dòng)態(tài)添加行效果
記事本對(duì)我們每個(gè)人來(lái)說(shuō)再熟悉不過(guò),下面這篇文章主要給大家介紹了在Android中實(shí)現(xiàn)記事本動(dòng)態(tài)添加行效果的相關(guān)資料,這是最近在開(kāi)發(fā)中遇到的一個(gè)小需求,想著分享出來(lái)供大家參考學(xué)習(xí),需要的朋友們下面來(lái)一起看看吧。2017-06-06
Android基于google Zxing實(shí)現(xiàn)各類(lèi)二維碼掃描效果
這篇文章主要介紹了Android基于google Zxing實(shí)現(xiàn)各類(lèi)二維碼掃描效果的相關(guān)資料,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-02-02
android實(shí)現(xiàn)http中請(qǐng)求訪問(wèn)添加cookie的方法
這篇文章主要介紹了android實(shí)現(xiàn)http中請(qǐng)求訪問(wèn)添加cookie的方法,實(shí)例分析了兩種添加cookie的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-10-10
Android的ImageButton當(dāng)顯示Drawable圖片時(shí)就不顯示文字
Android提供的ImageButton當(dāng)顯示Drawable圖片時(shí)就不會(huì)再顯示文字了,下面與大家分享下3種解決方法,不會(huì)的朋友可以了解下哈2013-06-06
Android小知識(shí)之OkHttp的2種請(qǐng)求方式詳解
OkHttp可以說(shuō)是如今最為流行的網(wǎng)絡(luò)請(qǐng)求框架之一,下面這篇文章主要給大家介紹了關(guān)于Android小知識(shí)之OkHttp的2種請(qǐng)求方式的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2018-10-10

