为什么我的应用程序停止显示progressdialog?
问题描述:
我已经创建了应用程序接收图像从服务器与排球和显示在recyclerview在我的应用程序与滑翔,我的应用程序有progressdialog和显示进度时,应用程序从滑动服务器下载图像,但往往我的应用程序停止进展,不工作像下面为什么我的应用程序停止显示progressdialog?
截图我不得不关闭应用程序,并再次打开它有什么解决这个问题哟可以看到下面
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);
}
}
答
使用pd.dismiss()
,而不是pd.hide()
我的代码这一点。
+0
THX的使用溶液工作 –
答
,而不是pd.hide()
使用pd.dismiss()
+0
THX您的解决方案 –
请附上您的日志也 –
什么错误 – UltimateDevil