0

J'ai créé l'application pour recevoir l'image du serveur avec volée et montre dans recyclerview dans mon application avec glide, mon application a progressdialog et montre la progression quand l'application télécharge l'image du serveur avec glide mais souvent mon application arrête en cours et ne fonctionne pas comme capture d'écran ci-dessousPourquoi mon application arrête-t-elle de montrer le progressdialog?

image description

je dois fermer l'application et l'ouvrir à nouveau quelle solution à ce problème yo peut voir mon code ci-dessous ce

RecyclerView recycler_view; 
static final String url=""; 
ArrayList<Image> images; 
GalleryAdapter mAdapter; 
ProgressDialog pd; 
public static Button btn_buy; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.activity_main); 

Toolbar toolbar=(Toolbar)findViewById(R.id.toolbar); 
setSupportActionBar(toolbar); 

recycler_view=(RecyclerView)findViewById(R.id.recycler_view); 
btn_buy=(Button)findViewById(R.id.btn_buy); 


pd=new ProgressDialog(this); 
pd.setCancelable(false); 

images=new ArrayList<>(); 
mAdapter=new GalleryAdapter(getApplicationContext(),images); 


RecyclerView.LayoutManager mLayoutManager=new 
GridLayoutManager(getApplicationContext(),2); 
recycler_view.setLayoutManager(mLayoutManager); 

recycler_view.setAdapter(mAdapter); 

ActivityCompat.requestPermissions(MainActivity.this, 
new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 
1); 

recycler_view.addOnItemTouchListener(new 
GalleryAdapter.RecyclerTouchListener(getApplicationContext(),recycler_view, 
new GalleryAdapter.ClickListener() { 
@Override 
public void onClick(View view, int position) { 

Bundle bundle=new Bundle(); 
bundle.putSerializable("images",images); 
bundle.putInt("position",position); 



FragmentTransaction ft=getFragmentManager().beginTransaction(); 

SlideshowDialogFragment newFragment=SlideshowDialogFragment.newInstance(); 
newFragment.setArguments(bundle); 
newFragment.show(ft,"slideshow"); 


} 

@Override 
public void onLongClick(View view, int position) { 

} 
})); 

btn_buy.setOnClickListener(new View.OnClickListener() { 
@Override 
public void onClick(View v) { 
Intent intent = new Intent(MainActivity.this,IABactivity.class); 
startActivity(intent); 

} 
}); 


fetchImages(); 
} 

@Override 
public void onRequestPermissionsResult(int requestCode, 
            String permissions[], int[] grantResults) { 
switch (requestCode) { 
case 1: { 

// If request is cancelled, the result arrays are empty. 
if (grantResults.length > 0 
&& grantResults[0] == PackageManager.PERMISSION_GRANTED) { 

     // permission was granted, yay! Do the 
     // contacts-related task you need to do. 
    } else { 

     // permission denied, boo! Disable the 
     // functionality that depends on this permission. 
     Toast.makeText(MainActivity.this, "دسترسی به حافظه داخلی لغو شد!!!", Toast.LENGTH_LONG).show(); 
    } 
    return; 
    } 

    // other 'case' lines to check for other 
    // permissions this app might request 
} 
} 



public void fetchImages() 
{ 

pd.setMessage("Please wait ..."); 
pd.show(); 


StringRequest req = new StringRequest(url, 
    new Response.Listener<String>() { 
    @Override 
    public void onResponse(String response) { 
     Log.d("", response.toString()); 
     pd.hide(); 

     images.clear(); 
     try { 
     JSONObject object = new JSONObject(response); 
     JSONArray dataArray = object.getJSONArray("data"); 

     for (int i = 0; i < dataArray.length(); i++) { 
      JSONObject dataObject = dataArray.getJSONObject(i); 

      Image image = new Image(); 
      image.setName(dataObject.getString("name_client")); 

      // JSONObject url = object.getJSONObject("url"); 
      image.setSmall(dataObject.getString("small")); 
      image.setOriginal(dataObject.getString("orginal")); 
      image.setTimestamp(dataObject.getString("timestamp")); 

      images.add(image); 

     } 
     } catch (JSONException e) { 
     e.printStackTrace(); 
     } 

     mAdapter.notifyDataSetChanged(); 
    } 
    }, new Response.ErrorListener() { 
    @Override 
    public void onErrorResponse(VolleyError error) { 
    Log.e("", "Error: " + error.getMessage()); 
    pd.hide(); 
    } 
}); 


AppController.getmInstance().addToRequsetQueue(req); 

} 
} 
+0

s'il vous plaît joindre vos journaux également –

+0

Quelles sont les erreurs – UltimateDevil

Répondre

2

utilisation pd.dismiss() au lieu de pd.hide().

+0

solution d'utilisation thx est un travail –

1

au lieu de pd.hide() utilisation pd.dismiss()

+0

thx pour votre solution –