在我的應用程序中,我有一個processDialog(使用AsyncTask),並在doInbackground它從服務器獲取數據。 所有工作都很完美。 但我想如果互聯網很慢,那麼它會發出警告提示「與你的互聯網連接有問題」 因此,我想知道progressDialog需要解僱多少時間。所以我可以把一個條件,如果時間> 5imns那麼警報即將到來。android如何設置進度對話框的時間
我怎樣才能得到需要多少時間或如何設置對話框的時間。
plz有人回答我。 預先感謝您
我下面的代碼是存在的,
public class InfoActivity extends Activity {
private TextView tvRestroName, tvRestroAddr, tvRestroArea, tvRestroCity,
tvRestroPhone, tvRestroRating, tvRestroCuisines, tvRestroAttr;
private ImageView imgRestro;
private ImageAdapter coverImageAdapter = new ImageAdapter(this);
private ScrollView sv;
static Bitmap restroBitmap, selectedImage;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
// This activity has two different views so to bind two views
// LinearLayout is used here
// from two views one is xml and another is coverflow class
LinearLayout ll = new LinearLayout(this);
ll.setOrientation(LinearLayout.VERTICAL);
LayoutInflater inflater = (LayoutInflater) this
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = inflater.inflate(R.layout.info, null);
// adding one view as xml
ll.addView(view);
CoverFlow coverFlow;
coverFlow = new CoverFlow(this);
coverFlow.setAdapter(new ImageAdapter(this));
// set Imageadapter which is define within InfoActivity class
coverFlow.setAdapter(coverImageAdapter);
coverFlow.setSpacing(-25);
coverFlow.setSelection(4, true);
coverFlow.setAnimationDuration(1000);
// and another view as class
ll.addView(coverFlow);
sv = new ScrollView(this);
sv.addView(ll);
// To add all views to InfoActivity
setContentView(sv);
// to initialize all variables like textview and imageview
setupViews();
// for progress dialog
new DownloadTask().execute(this);
// click event of images within imageadapter
coverFlow.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> arg0, View arg1,
int position, long arg3) {
Toast.makeText(InfoActivity.this, "" + (position + 1),
Toast.LENGTH_SHORT).show();
// imageView.setImageResource(mImageIds[arg2]);
String slImg = TabHostActivity.galleryArray[position];
selectedImage = loadBitmap(slImg);
Intent i = new Intent(InfoActivity.this,
PostCommentActivity.class);
startActivity(i);
}
});
}
// to initialize all variables like textview and imageview
private void setupViews() {
imgRestro = (ImageView) findViewById(R.id.imageResturant);
tvRestroName = (TextView) findViewById(R.id.tvRestroName);
tvRestroAddr = (TextView) findViewById(R.id.tvRestroAddr);
tvRestroArea = (TextView) findViewById(R.id.tvRestroArea);
tvRestroCity = (TextView) findViewById(R.id.tvRestroCity);
tvRestroPhone = (TextView) findViewById(R.id.tvRestroPhone);
tvRestroRating = (TextView) findViewById(R.id.tvRestroRating);
tvRestroCuisines = (TextView) findViewById(R.id.tvRestroCuisines);
tvRestroAttr = (TextView) findViewById(R.id.tvRestroAttributes);
}
// set values to all fields
private void setupValues() {
tvRestroName.setText("Restaurant " + TabHostActivity.restroName);
//Bitmap bmp = loadBitmap(TabHostActivity.restroImageurl);
System.out.println("str ;" + TabHostActivity.restroImageurl);
imgRestro.setImageBitmap(Bitmap.createScaledBitmap(restroBitmap, 300, 300, true));
System.out.println("Image seted");
tvRestroAddr.setText("Address: " + TabHostActivity.addr);
tvRestroArea.setText("Area: " + TabHostActivity.area);
tvRestroCity.setText("City:" + TabHostActivity.city);
String phones = "Phones: ";
for (int i = 0; i < TabHostActivity.phoneArray.length; i++)
phones += TabHostActivity.phoneArray[i] + ", ";
tvRestroPhone.setText(phones.substring(0, phones.length() - 2));
tvRestroRating.setText("Rating: " + TabHostActivity.rating);
String cuisines = "Cuisines: ";
for (int i = 0; i < TabHostActivity.cuisinesArray.length; i++)
cuisines += TabHostActivity.cuisinesArray[i] + ", ";
tvRestroCuisines.setText(cuisines.substring(0, cuisines.length() - 2));
String attr = "Attributes: ";
for (int i = 0; i < TabHostActivity.attributesArray.length; i++)
attr += TabHostActivity.attributesArray[i] + ", ";
tvRestroAttr.setText(attr.substring(0, attr.length() - 2));
}
// to get image from url in form of bitmap
private static Bitmap loadBitmap(String url) {
URL myFileUrl = null;
InputStream is = null;
try {
myFileUrl = new URL(url);
} catch (MalformedURLException e) {
e.printStackTrace();
}
try {
HttpURLConnection conn = (HttpURLConnection) myFileUrl
.openConnection();
conn.setDoInput(true);
conn.connect();
is = conn.getInputStream();
Log.i("i m connected", "Download in info for main image");
} catch (IOException e) {
e.printStackTrace();
}
Log.i("i m connected", "Download in info for main image");
return BitmapFactory.decodeStream(is);
}
// for progressdialog
private class DownloadTask extends AsyncTask<Context, Integer, Void> {
private ProgressDialog Dialog = new ProgressDialog(InfoActivity.this);
@Override
protected void onPreExecute() {
System.out.println("In onPreExecute ");
Dialog.setTitle("Loading");
Dialog.setMessage("Please wait for few seconds...");
//Dialog.setMax(100);
//Dialog.setProgress(0);
Dialog.show();
}
@Override
protected Void doInBackground(Context... params) {
System.out.println("In doInBackground ");
//examineJSONFile();
restroBitmap= loadBitmap(TabHostActivity.restroImageurl);
System.out.println("conversion of bitmap done");
int i = 0;
System.out.println("In doInBackground ");
Dialog.dismiss();
//Dialog.cancel();
for (i = 0; i < 10; i++)
System.out.println("In doInBackground " + i);
Bitmap bitmap = null;
for (i = 0; i < TabHostActivity.galleryArray.length; i++) {
try {
publishProgress(i);
} catch (Exception e) {
Log.i("in while", e.getMessage());
}
bitmap = loadBitmap(TabHostActivity.galleryArray[i]);
TabHostActivity.bitmapHash.remove(TabHostActivity.galleryArray[i]);
TabHostActivity.bitmapHash.put(TabHostActivity.galleryArray[i], bitmap);
}
return null;
}
@Override
protected void onProgressUpdate(Integer... progress) {
if (progress[0]==0) {
setupValues();
System.out.println("setupvalues");
} else {
System.out.println("In progress ");
coverImageAdapter.setnotify();
}
}
@Override
protected void onPostExecute(Void arg) {
System.out.println("In onPostExecute ");
}
}
public class ImageAdapter extends BaseAdapter {
int mGalleryItemBackground;
private Context mContext;
private BitmapDrawable drawable;
private FileInputStream fis;
public ImageAdapter(Context c) {
mContext = c;
}
public int getCount() {
return TabHostActivity.galleryArray.length;
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
public void setnotify() {
notifyDataSetChanged();
}
public View getView(int position, View convertView, ViewGroup parent) {
ImageView i = new ImageView(mContext);
fetchDummy(TabHostActivity.galleryArray[position], i);
i.setLayoutParams(new CoverFlow.LayoutParams(200, 200));
i.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
// Make sure we set anti-aliasing otherwise we get jaggies
drawable = (BitmapDrawable) i.getDrawable();
try {
drawable.setAntiAlias(true);
} catch (Exception e) {
System.out.println("Exception in getview :" + e);
}
return i;
// return mImages[position];
}
/**
* Returns the size (0.0f to 1.0f) of the views depending on the
* 'offset' to the center.
*/
public float getScale(boolean focused, int offset) {
/* Formula: 1/(2^offset) */
return Math.max(1, 2.0f/(float) Math.pow(2, Math.abs(offset)));
}
private void fetchDummy(String urlString, ImageView i) {
if (TabHostActivity.bitmapHash.containsKey(urlString)) {
i.setImageBitmap(TabHostActivity.bitmapHash.get(urlString));
}
}
}
的[?我怎樣才能關閉ProgressDialog在設定時間後(可能的複製http://stackoverflow.com/questions/29153378/how-can-i-close-a-progressdialog-after-a-set-time) –
我認爲這是最快最好的方法,也是因爲對你的代碼影響很小 http:// stackoverflow.com/a/29153578/3395760 –