-1

Je dois utiliser Afficher la disposition de l'onglet pager dans mon application avant de charger les données de manière dynamique si je clique sur le bouton de retour, puis l'application se écrasé s'il vous plaît donner une solution.Android View Pager Issue dans l'application android

public class AcademicFragment extends Fragment { 

    public static TabLayout tabLayout; 
    public static ViewPager viewPager; 

    //--------------------Getting degree_sought via shared Preference---------------------- 
    String stud_degree_sought; 


    @Nullable 
    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
     /** 
     *Inflate academic_tab and setup Views. 
     */ 
     View x = inflater.inflate(R.layout.academic_tab, null); 
     tabLayout = (TabLayout) x.findViewById(R.id.tabs); 
     viewPager = (ViewPager) x.findViewById(R.id.viewpager); 
     /** 
     *Set an Adater for the View Pager 
     */ 

     viewPager.setAdapter(new MyAdapter(getChildFragmentManager())); 

     /** 
     * Now , this is a workaround , 
     * The setupWithViewPager dose't works without the runnable . 
     * Maybe a Support Library Bug . 
     */ 

     tabLayout.post(new Runnable() { 
      @Override 
      public void run() { 
       tabLayout.setupWithViewPager(viewPager); 
      } 
     }); 


     //--------------------Getting degree_sought via shared Preference---------------------- 
     SharedPreferences sharedPreferences = this.getActivity().getSharedPreferences(LoginActivity.SHARED_PREF_NAME, Context.MODE_PRIVATE); 
     stud_degree_sought = sharedPreferences.getString(LoginActivity.KEY_DEGREE_SOUGHT, "Not Available"); 

     return x; 

    } 

    class MyAdapter extends FragmentPagerAdapter { 

     public MyAdapter(FragmentManager fm) { 
      super(fm); 
     } 

     /** 
     * Return fragment with respect to Position . 
     */ 


     @Override 
     public Fragment getItem(int position) { 


      //-------------------------------------Fragment for PostGraduation Tab----------------------------- 
      if (stud_degree_sought.equalsIgnoreCase("2")) { 
       switch (position) { 
        case 0: 
         return new PrimarydataFragment(); 
        case 1: 
         return new ClasstwelveFragment(); 
        case 2: 
         return new FirstyearFragment(); 
        case 3: 
         return new SecondyearFragment(); 
        case 4: 
         return new ThirdyearFragment(); 
        case 5: 
         return new FourthyearFragment(); 
       } 
      } 

      //-------------------------------------Fragment for Graduation Tab----------------------------- 
      else { 
       switch (position) { 
        case 0: 
         return new UgPrimaryFragment(); 
        case 1: 
         return new UgNinethDataFragment(); 
        case 2: 
         return new UgTenClassDataFragment(); 
        case 3: 
         return new UgTenBoardDataFragment(); 
        case 4: 
         return new UgElevenClassFragment(); 
        case 5: 
         return new UgTwelveClassFragment(); 
        case 6: 
         return new UgTwelveBoardFragment(); 
       } 

      } 
      return null; 
     } 

     @Override 
     public int getCount() { 

      return DrawerActivity.value; 

     } 

     /** 
     * This method returns the title of the tab according to the position. 
     */ 

     @Override 
     public CharSequence getPageTitle(int position) { 

      //-------------------------------------PostGraduation Tab----------------------------- 
      if (stud_degree_sought.equalsIgnoreCase("2")) { 
       Log.d("Academic switchfragment", stud_degree_sought); 
       switch (position) { 


        case 0: 
         return "Primary data"; 
        case 1: 
         return "Grade 12 Board/IB"; 
        case 2: 
         return "First Year"; 
        case 3: 
         return "Second Year"; 
        case 4: 
         return "Third Year"; 
        case 5: 
         return "Fourth Year"; 
       } 
      } 
      //-------------------------------------Graduation Tab----------------------------- 
      else { 
       switch (position) { 

        case 0: 
         return "Primary Data"; 
        case 1: 
         return "Class 9"; 
        case 2: 
         return "Class 10"; 
        case 3: 
         return "Class 10 Board"; 
        case 4: 
         return "Class 11/IB"; 
        case 5: 
         return "Class 12/IB"; 
        case 6: 
         return "Class 12 Board/IB"; 

       } 
      } 
      return null; 
     } 
    } 

} 

Fragment de code

void Ugtwelveclassdata() { 

    progressbar.setVisibility(View.VISIBLE); 

    Map<String, String> params = new HashMap<String, String>(); 
    params.put("id", id); 

    CustomRequest jsObjRequest = new CustomRequest(Request.Method.POST, url, params, new Response.Listener<JSONObject>() { 

     @Override 
     public void onResponse(JSONObject response) { 
      Log.d("Volley", response.toString()); 
      progressbar.setVisibility(View.GONE); 
      getActivity().getWindow().clearFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE); 

      try { 
       success12 = response.getString("success12"); 

       if (success12.equalsIgnoreCase("1")) { 

        // HIDE THE SPINNER AFTER LOADING FEEDS 

        progressbar.setVisibility(View.INVISIBLE); 
        Log.d("1", "I am in try block success is 12 class"); 

        JSONObject primarydetailarray = response.getJSONObject("class12"); 


        total_percent = primarydetailarray.getString(Constant.TOTAL_PERCENT); 
        Log.d("total_percent", total_percent); 

        overall_rank = primarydetailarray.getString(Constant.OVERALL_RANK); 
        Log.d("overall_rank", overall_rank); 

        term_first_overall = primarydetailarray.getString(Constant.TERM_FIRST_OVERALL); 
        Log.d("overall_rank", term_first_overall); 

        term_second_overall = primarydetailarray.getString(Constant.TERM_SECOND_OVERALL); 
        Log.d("overall_rank", term_second_overall); 

        term_first_rank = primarydetailarray.getString(Constant.TERM_FIRST_RANK); 
        Log.d("overall_rank", term_first_rank); 

        term_second_rank = primarydetailarray.getString(Constant.TERM_SECOND_RANK); 
        Log.d("overall_rank", term_second_rank); 


        marksheet = primarydetailarray.getString(Constant.MARKSHEET); 
        Log.d("marksheet", marksheet); 

        ug_subject_pkey = primarydetailarray.getString(Constant.UG_SUBJECT_PKEY); 
        Log.d("pg_subject_pkey", ug_subject_pkey); 

        term = primarydetailarray.getString(Constant.TERM); 
        Log.d("pg_subject_pkey", term); 

        marks = primarydetailarray.getString(Constant.MARKS); 
        Log.d("marks", marks); 

        approve = primarydetailarray.getString("approve_status"); 
        Log.d("approve", approve); 


        if (user_type.equalsIgnoreCase("parent")) { 
         update.setVisibility(View.GONE); 

        } else { 

         update.setVisibility(View.VISIBLE); 

        } 

        if (approve.equalsIgnoreCase("1")) { 

         approvetv.setVisibility(View.VISIBLE); 
         notapprove.setVisibility(View.GONE); 
         browsebtn.setEnabled(false); 
         update.setVisibility(View.GONE); 

        } else { 

         approvetv.setVisibility(View.GONE); 
         notapprove.setVisibility(View.VISIBLE); 
         browsebtn.setEnabled(true); 
         update.setVisibility(View.VISIBLE); 


        } 


        subjectpkey = primarydetailarray.getString(Constant.SUBJECTPKEY); 
        Log.d("subjectpkey", subjectpkey); 

        acad_honour = primarydetailarray.getString(Constant.ACAD_HONOUR); 
        Log.d("acad_honour", acad_honour); 


        String getsubjectpky[] = subjectpkey.split(","); 
        System.out.println("getsubjectpky" + Arrays.toString(getsubjectpky)); 

        String mark[] = marks.split(","); 
        System.out.println("mark" + Arrays.toString(mark)); 

        String terms[] = term.split(","); 
        System.out.println("terms" + Arrays.toString(terms)); 


        ugsubjectpk = ug_subject_pkey.split(","); 
        System.out.println("pkkkkkkkkkkkkkk" + Arrays.toString(ugsubjectpk)); 


        for (int s = 0; s < getsubjectpky.length; s++) { 


         child = getLayoutInflater(null).inflate(R.layout.rownine, null); 
         mContainerView.addView(child); 
         markeltwelveclass = (EditText) child.findViewById(R.id.markgrade); 
         markeltwelveclass.setText(mark[s].trim()); 

         termtwelveclass = (EditText) child.findViewById(R.id.termnine); 
         termtwelveclass.setText(terms[s].trim()); 

         Button dltbtn = (Button) child.findViewById(R.id.deletesubject); 
         dltbtn.setVisibility(View.INVISIBLE); 

         if (getsubjectpky.length >= 4) 

         { 
          dltbtn.setVisibility(View.VISIBLE); 
         } 


         subjectspinner = (Spinner) child.findViewById(R.id.fragmentnine_edittext_subjectname); 

         subjectadapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_spinner_item, sub); 
         subjectadapter.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line); 
         subjectspinner.setAdapter(subjectadapter); 


         for (int i = 0; i < subpkey.size(); i++) { 

          if (subpkey.get(i).equalsIgnoreCase(getsubjectpky[s])) { 
           subjectspinner.setSelection(i); 
          } 
         } 


         deletebtn = (Button) child.findViewById(R.id.deletesubject); 
         deletebtn.setOnClickListener(new View.OnClickListener() { 
          @Override 
          public void onClick(View view) { 


           { 

            mContainerView.removeView((View) view.getParent()); 

           } 




          } 
         }); 

        } 



        if (subjectpkey.equalsIgnoreCase("0")) { 

         for (int p = 0; p < 2; p++) { 
          View child = getLayoutInflater(null).inflate(R.layout.rownine, null); 
          mContainerView.addView(child); 

          Button dltbtn = (Button) child.findViewById(R.id.deletesubject); 
          dltbtn.setVisibility(View.INVISIBLE); 

          subjectspinner = (Spinner) child.findViewById(R.id.fragmentnine_edittext_subjectname); 

          subjectadapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_spinner_item, sub); 
          subjectadapter.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line); 
          subjectspinner.setAdapter(subjectadapter); 
         } 
        } 


        twtotalpercentage.setText(total_percent); 
        twoverallrank.setText(overall_rank); 
        twaccademichonours.setText(acad_honour); 
        twfilename.setText(marksheet); 
        twtermoneovr.setText(term_first_overall); 
        twtermonerank.setText(term_first_rank); 
        twtermtwoovr.setText(term_second_overall); 
        twtermtworank.setText(term_second_rank); 


        if (twfilename.getText().toString().equalsIgnoreCase("null")) { 

         twfilename.setText(""); 

        } 


       } else { 


        update.setText("Submit"); 

        progressbar.setVisibility(View.INVISIBLE); 

        for (int p = 0; p < 3; p++) { 
         View child = getLayoutInflater(null).inflate(R.layout.rownine, null); 
         mContainerView.addView(child); 

         Button dltbtn = (Button) child.findViewById(R.id.deletesubject); 
         dltbtn.setVisibility(View.INVISIBLE); 


         subjectspinner = (Spinner) child.findViewById(R.id.fragmentnine_edittext_subjectname); 

         subjectadapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_spinner_item, sub); 
         subjectadapter.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line); 
         subjectspinner.setAdapter(subjectadapter); 
        } 
        Log.d("fail", "status fail"); 
       } 

      } catch (Exception e) { 
       e.printStackTrace(); 
       showToast("Something embarrassing happened here."); 
      } 

     } 
    }, new Response.ErrorListener() { 

     @Override 
     public void onErrorResponse(VolleyError error) { 
      error.printStackTrace(); 
      VolleyLog.d("Volley", "Error: " + error.getMessage()); 
      showToast("Connection Error"); 
      progressbar.setVisibility(View.GONE); 
      getActivity().getWindow().clearFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE); 
     } 


    }); 

    //requestQueue.add(jsObjRequest); 
    // Adding request to request queue 

    jsObjRequest.setRetryPolicy(new DefaultRetryPolicy(
      30000, 
      DefaultRetryPolicy.DEFAULT_MAX_RETRIES, 
      DefaultRetryPolicy.DEFAULT_BACKOFF_MULT)); 

    AppController.getInstance().addToRequestQueue(jsObjRequest); 
} 
+1

Partagez stacktrace. –

+0

java.lang.NullPointerException: Tentative d'invocation de la méthode virtuelle 'android.view.Window android.support.v4.app.FragmentActivity.getWindow()' sur une référence d'objet null Erreur dans le fragment getActivity(). GetWindow() .clearFlags (WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE); Pour cette ligne –

+0

@SagarDeshmukh Je ne peux pas voir cette partie dans votre code pouvez-vous s'il vous plaît partager cette partie du code? – yrazlik

Répondre

0

Le problème est, vous appelez la méthode getWindow() avant l'activité est créée. Appelez-le dans votre méthode onActivityCreated() à la place:

@Override 
public void onActivityCreated(Bundle savedInstanceState) { 
    super.onActivityCreated(savedInstanceState); 
    getActivity().getWindow().clearFlags(WindowManager.LayoutPar‌​ams.FLAG_NOT_TOUCHAB‌​LE); 
} 

Cela devrait fonctionner maintenant.

+0

Merci, pour la solution a travaillé. :) –

+0

S'il vous plaît upvote et accepter la solution comme réponse si cela a fonctionné :) Merci. – yrazlik