بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
مشکل در نمایش progress dialog هنگام ارسال اطلاعات به سرور
با سلام من طبق روشی که استاد گفتن کار ارسال اطلاعات به سرور و کلاس وب سرویس رو انجام دادم اما وقتی میخوام در زمان ارسال اطلاعات یک progress dialog نمایش داده بشه این پنجره با تاخیر نمایش داده میشه و با کلیک روی دکمه ارسال کمی مکث ایجاد میشه لطفا راهنماییم کنید که روش صحیح این کار چیه
کدهای مربوط به دکمه ارسال
btn_ersal.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { ArrayList<NameValuePair> params = new ArrayList<NameValuePair>(); params.add(new BasicNameValuePair("username", edt_username.getText().toString())); params.add(new BasicNameValuePair("email", edt_email.getText().toString())); sendData(params); } });
کدهای مربوط به تابع ارسال و نمایش پروگرس دیالوگ
private void sendData(ArrayList<NameValuePair> params) { String result = Webservice.readUrl("http://testi.ir/insert.php", params); final ProgressDialog pd = new ProgressDialog(Profile.this); pd.setMessage(getString(R.string.waiting)); pd.show(); final Timer tm = new Timer(); tm.scheduleAtFixedRate(new TimerTask() { @Override public void run() { runOnUiThread(new Runnable() { @Override public void run() { if (res.equals("ok")) { pd.cancel(); Toast.makeText(getApplicationContext(), "insert operation Successfull", Toast.LENGTH_LONG).show(); res = ""; tm.cancel(); } else if (res.equals("error")) { pd.cancel(); Toast.makeText(getApplicationContext(), "error in operation", Toast.LENGTH_LONG).show(); res = ""; tm.cancel(); } } }); } }, 1, 1000); }
کدهای مربوط به کلاس وب سرویس
public class Webservice { public static String readUrl(String url, ArrayList<NameValuePair> params) { try { HttpClient client = new DefaultHttpClient(); HttpPost method = new HttpPost(url); if (params != null) { method.setEntity(new UrlEncodedFormEntity(params, "UTF-8")); } HttpResponse response = client.execute(method); InputStream inputStream = response.getEntity().getContent(); String result = convertInputStreamToString(inputStream); return result; } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return null; } private static String convertInputStreamToString(InputStream inputStream) { try { BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream)); StringBuilder builder = new StringBuilder(); String line = ""; while ((line = reader.readLine()) != null) { builder.append(line); } Register.res = builder.toString(); return builder.toString(); } catch (IOException e) { e.printStackTrace(); } return null; } }
0
0
اول اطلاعات رو فرستادین به وب سرویستون بعد اومدید ProgressDialog رو نشون دادید یعنی جا به جا. (11 سال پیش)
0
0
منظورتون کد زیر هست؟ باید اونو کجا بذارم
String result = Webservice.readUrl( لینک , params); (11 سال پیش)
0
0
منظورتون کد زیر هست؟ باید اونو کجا بذارم
String result = Webservice.readUrl("htt://testi.ir/insert.php", params); (11 سال پیش)
0
0
Spirit جان من کد ارسال اطلاعات رو درون متد run هم گذاشتم اما باز هم تاخیر ایجاد میشه و اول اطلاعات ارسال میشه بعد پروگرس دیالوگ نمایش داده میشه. لطفا راهنماییم کنید که کجا باید اطلاعات رو ارسال کنم. (11 سال پیش)
0
0
با توجه به کدهایی که گذاشتید، دو تا ایراد داره کارتون اول اینکه از Thread جدا برای اتصال اینترنتی استفاده نکردید، دوم اینکه اول باید ProgressDialog رو نشون بدید و بعد از متد Webservice.readUrl برای دریافت و ارسال اطلاعات استفاده کنید. راجب این موارد دوستان قبلا مواردی رو مطرح کردن میتونید از اونا کمک بگیرید. (11 سال پیش)
برای این سوال پاسخی وجود ندارد.
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .