2

I am facing strange issue during call of my activity with Fragment usage. I am getting error like,

java.lang.IllegalStateException: Fragment ScoreFragment{ee2b833 id=0x7f0e0198} not attached to Activity

On line 146. My Fragment code which have error is line like below

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

And My full code for same is below,

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

    }
}

Let me know if someone can help me for get out of it. Thanks.

shadygoneinsane
  • 2,226
  • 1
  • 24
  • 47
Meera Joshi
  • 59
  • 1
  • 7

1 Answers1

7

Try using isAdded():

Return true if the fragment is currently added to its activity.

So your code should be like this :

if(isAdded() && mPageFlag.equalsIgnoreCase(getString(R.string.winners))){
shadygoneinsane
  • 2,226
  • 1
  • 24
  • 47