2015-12-17 2 views
-1

J'ai implémenté Android-PullToRefresh dans l'application. Tout fonctionne correctement, mais le pull to refresh continue de se charger après le chargement des données dans la Listview.Android Tirer pour actualiser continue de charger

list = (PullToRefreshListView) findViewById(R.id.stored_location); 
    alertLocationList = list.getRefreshableView(); 
    list.setMode(Mode.PULL_FROM_END); 

    list.setOnRefreshListener((new PullToRefreshBase.OnRefreshListener< ListView>() { 

       @Override 
       public void onRefresh(PullToRefreshBase<ListView> refreshView) { 
         list.onRefreshComplete(); 
        if (Integer.valueOf(totalCount)==Integer.valueOf(endcount)) { 

         // list.onRefreshComplete(); 
         Log.e(TAG,"----Loaded in listener---"); 
        } 
        else { 
         Log.e(TAG,"----calling next data---"); 
         stored_List_Call(); 
        } 
       } 
      })); 

et ci-dessous est mon post méthode execute que je l'ai utilisé

@Override 
     protected void onPostExecute(String result) 
     { 
      dialog.dismiss(); 
      switch (asynctaskEnum) 
      { 
       case storedLocationList: 
        try 
        { 
         if(result==null) 
         { 
          Log.e("result", "result is null"); 
          return; 
         } 
         JSONObject header_Object=new JSONObject(result); 
         if(header_Object.getJSONObject("header").getString("status").equals("1")) { 
          response_Data(result); //this method parse the Json response and added it to the array list 
          if(userLocationsAdapter==null) { 
           Log.e(TAG,"list size--->"+storedUserLocationList.size()); 
           userLocationsAdapter = new StoredLocationAdapter(storedUserLocationList, Activity.this); 
           alertLocationList.setAdapter(userLocationsAdapter); 

          }else 
          { 
           Log.e(TAG, "list size in else--->" + storedUserLocationList.size()); 
           list.onRefreshComplete(); 
           userLocationsAdapter.notifyDataSetChanged(); 

          } 
          } 
         else { 

          Toast.makeText(Activity.this, "Please try again...", Toast.LENGTH_SHORT).show(); 
          return; 
         } 
        } 
        catch (Exception e) { 
         e.printStackTrace(); 
        } 
        break; 
       default: 
        break; 
      } 
      super.onPostExecute(result); 
      } 

Quelqu'un me dire où je l'ai manqué la chose. J'ai passé une journée entière à trouver ce problème. Sil te plait aide moi.

Merci d'avance.

Répondre

3

vous devez appeler

list.onRefreshComplete(); 

chaque fois que votre tâche est terminée, vous devez appeler onRefreshComplete()

protected void onPostExecute(String result) 
    { 
     dialog.dismiss(); 
     list.onRefreshComplete(); 
    } 
+0

Je l'ai déjà appelé onRefreshComplete() dans le Listener, mais il ne fonctionne pas. –

+0

s'il vous plaît vérifier le post Je l'ai édité –

+0

J'ai déjà appelé le onReferesh complète avant notifydatasetchange(), S'il vous plaît jeter un oeil dans le list.onRefreshComplete(); userLocationsAdapter.notifyDataSetChanged(); –