第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

getActivity()在片段函數(shù)中返回NULL

getActivity()在片段函數(shù)中返回NULL

慕標(biāo)琳琳 2019-07-03 16:36:02
我有一個(gè)片段(F1),它使用這樣的公共方法public void asd() {     if (getActivity() == null) {         Log.d("yes","it is null");     }}是的,當(dāng)我叫它(從活動(dòng)中),它是空的.FragmentTransaction transaction1 = getSupportFragmentManager().beginTransaction(); F1 f1 = new F1();transaction1.replace(R.id.upperPart, f1);transaction1.commit();f1.asd();這一定是我做錯(cuò)了什么,但我不知道那是什么
查看完整描述

3 回答

?
慕桂英3389331

TA貢獻(xiàn)2036條經(jīng)驗(yàn) 獲得超8個(gè)贊

commit調(diào)度事務(wù),即它不是直接發(fā)生的,而是在主線程下一次準(zhǔn)備就緒時(shí)作為對(duì)主線程的工作進(jìn)行調(diào)度。

我建議增加一個(gè)

onAttach(Activity activity)

方法對(duì)您的Fragment并在其上放置一個(gè)斷點(diǎn),并查看它何時(shí)被調(diào)用相對(duì)于您對(duì)asd()..您將看到在調(diào)用的方法之后調(diào)用它。asd()出口。這個(gè)onAttach呼叫是Fragment與它的活動(dòng)有關(guān),從這一點(diǎn)開始getActivity()將返回非空(nb也有onDetach()打電話)。


查看完整回答
反對(duì) 回復(fù) 2019-07-03
?
UYOU

TA貢獻(xiàn)1878條經(jīng)驗(yàn) 獲得超4個(gè)贊

最好的辦法是在調(diào)用onAttach時(shí)保留活動(dòng)引用,并在需要時(shí)使用活動(dòng)引用。

@Overridepublic void onAttach(Context context) {
    super.onAttach(activity);
    mContext = context;}@Overridepublic void onDetach() {
    super.onDetach();
    mContext = null;}


查看完整回答
反對(duì) 回復(fù) 2019-07-03
?
浮云間

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超4個(gè)贊

這發(fā)生在你打電話的時(shí)候getActivity()在刪除片段后完成的另一個(gè)線程中。典型的情況是getActivity()(前。為了Toast)當(dāng)HTTP請(qǐng)求完成時(shí)(在onResponse例如)。

為了避免這種情況,您可以定義一個(gè)字段名。mActivity用它代替getActivity()..該字段可以在片段的onAttach()方法中初始化,如下所示:

@Overridepublic void onAttach(Context context) {
    super.onAttach(context);

    if (context instanceof Activity){
        mActivity =(Activity) context;
    }}

在我的項(xiàng)目中,我通常用以下特性為我的所有片段定義一個(gè)基類:

public abstract class BaseFragment extends Fragment {

    protected FragmentActivity mActivity;

    @Overridepublic void onAttach(Context context) {
    super.onAttach(context);

    if (context instanceof Activity){
        mActivity =(Activity) context;
    }}}

快樂的編碼,


查看完整回答
反對(duì) 回復(fù) 2019-07-03
  • 3 回答
  • 0 關(guān)注
  • 580 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)