آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

نحوه ایجاد loading

learnpro  11 سال پیش  11 سال پیش
0 0

سلام

من یه loading میخواستم برای برنامم بسازم خودم از این روش استفاده کردم ولی حس میکنم اشتباهه

  public void PopulateFromServer()
{
showLoadingDialog();

String result = Webservice.readUrl("http://192.168.1.7/car_news/service.php?action=read", null);
null);
if (result != null)
{

try {
applications.clear();
JSONArray car_news = new JSONArray(result);
for (int i = 0; i < car_news.length(); i++)
{
JSONObject object = car_news.getJSONObject(i);
StructApplication application = new StructApplication();
application.car_id = object.getInt("car_id");
application.car_name = object.getString("car_name");
applications.add(application);
}

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

adapter.notifyDataSetChanged();
dismissLoadingDialog();
}

}

public void showLoadingDialog() {

if (progress == null) {
progress = new ProgressDialog(this);
progress.setTitle("title");
progress.setMessage("Loading");
}
progress.show();
}


public void dismissLoadingDialog() {

if (progress != null && progress.isShowing()) {
progress.dismiss();
}
}


0 0
لطفا عنوان سوالتون رو هم مرتبط با محتوا بنویسید (11 سال پیش)
 برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال 
مجتبی یگانه  11 سال پیش
+2 0

اشتباه نیست ، در واقع میتونه بهتر بشه !

شما کار ها رو thread base انجام ندادید ، البته ممکنه readUrl با Thread انجام شده باشه که سورس اش اینجا نیست ! ، در کل من معمولا کار ها رو با یک Thread انجام میدم ، در ابتدای run شدن اش دیالوگ رو نشون میدم ، در انتها هم مخفی میکنم ، می تونیم با یک try/catch هم کنترل کنیم که اگه خطایی اتفاق افتاد ، دیالوگ Dismiss بشه

Thread thread = new Thread(new Runnable() {

  @Override
  public void run() {
	  try {
		  G.handler.post(new Runnable() {

			  @Override
			  public void run() {
				  // Show Alert Dialog
			  }
		  });

		  // Do Job

		  // Dismiss Dialog
	  }
	  catch (Exception e) {
		  e.printStackTrace();
		  // Dismiss Dialog
	  }
  }
});

البته بازم به کاربرد شما بستگی داره که دیالوگ کجا Dismiss بشه

0 0
من متد PopulateFromServer رو توسط handler صدا زدم. درسته که ؟ آقا مجتبی نمونه کد از این چیزی که گفتی دم دستت نیست ؟ (11 سال پیش)
0 0
یه چیز دیگه. من با این کد وقتی روی دکمه مربوطه به PopulateFromServer میزنم یه مقداری صبر میکنه بعد دستورات اجرا میشه. پس چرا توی اون زمان loading نشون داده نمشه ؟ (11 سال پیش)
0 0
نمیدونم ! ، شاید به خاطر کار زیاد روی Thread اصلی باشه ، با کد من تست کنید (11 سال پیش)

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .