2017-01-20 28 views
0

フラグメント使用で自分のアクティビティを呼び出す際に奇妙な問題に直面しています。 Iは、のようなエラーを取得していjava.lang.IllegalStateException:フラグメントがアクティビティの問題にアンドロイドで添付されていません

java.lang.IllegalStateException:フラグメントScoreFragment {ee2b833 ID = 0x7f0e0198}ライン146上のアクティビティ

に取り付けられていないエラーを有するマイフラグメントコードのようなラインであります以下

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) { 

    } 
} 

誰かが私を助けてくれるかどうか教えてください。ありがとう。

+0

'setUserVisibleHint'が活動中または断片でありますか?アクティビティ –

+0

@ρяσѕρєяKに 'mPageFlag'を追加するのは、フラグメントとmPageFlagです。public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState);のように作成します。 if(getArguments()!= null){ mPageFlag = getArguments()。getString(ARG_PAGE_FLAG); } } –

+0

あなたの 'Context'' mContext'はnullです。 –

答えて

3

フラグメントが、現在そのアクティビティに追加されている場合はtrue isAdded():

リターンを使用してみてください。

だからあなたのコードは次のようにする必要があります:

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

これは、currect Answerです。ありがとう@shadygoneinsane –

関連する問題