簡體   English   中英

java.lang.IllegalStateException:片段未附加到android中的Activity問題

[英]java.lang.IllegalStateException: Fragment not attached to Activity issue in android

在使用Fragment用法調用活動期間,我遇到一個奇怪的問題。 我收到類似的錯誤消息,

java.lang.IllegalStateException:片段ScoreFragment {ee2b833 id = 0x7f0e0198}未附加到Activity

在第146行。我的具有錯誤的Fragment代碼如下所示

if(mPageFlag.equalsIgnoreCase(getString(R.string.winners))){

我的完整代碼如下

 @Override
public void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
  if (getArguments() != null) {
    mPageFlag = getArguments().getString(ARG_PAGE_FLAG); 
  } 
}

@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
    super.setUserVisibleHint(isVisibleToUser);
    if(isVisibleToUser && !mIsPageLoaded){
        mContext = getActivity();
        mIsPageLoaded = true;
        if(mPageFlag.equalsIgnoreCase(getString(R.string.winners))){
            new getcontestscorewinners(mContext).execute();
        }else{ //

            new getcontestscorewinnersNew(mContext).execute();
        }
    }
}


public class getcontestscorewinners extends AsyncTask<String, Void, String> {
    boolean response = false;

    private Context mContext;

    public getcontestscorewinners(Context context) {
        mContext = context;
    }

    @Override
    protected void onPreExecute() {

        progress = ProgressDialog.show(mContext, "Processing...",
                "Please wait....");
    }

    @Override
    protected String doInBackground(String... params) {

        NetworkTask.getContestScoreWinners(winnerHandler);


        return "";

    }

    @Override
    protected void onPostExecute(String result) {


    }

    @Override
    protected void onProgressUpdate(Void... values) {

    }
}

讓我知道是否有人可以幫助我擺脫困境。 謝謝。

嘗試使用isAdded():

如果片段當前已添加到其活動中,則返回true。

因此,您的代碼應如下所示:

if(isAdded() && mPageFlag.equalsIgnoreCase(getString(R.string.winners))){

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM