رفتن به مطلب
انجمن اندروید ایران | آموزش برنامه نویسی اندروید و موبایل
  • android.png.1fab383bc8500cd93127cebc65b1dcab.png

سوال پروکس دیالوگ


پست های پیشنهاد شده

سلام در کد زیر من می خواهم لینک دانلود بزارم در کجاش باید بزارم و اینکه این کلاس را بخواهم تو کلاس دیگر فراخوانی کنم چطور باید اینکار رو انجام بدم با تشکر

[shcode=java]

package com.javacodegeeks.android.androidprogressdialogexample;

import android.app.Activity;

import android.app.ProgressDialog;

import android.os.Bundle;

import android.os.Handler;

import android.view.View;

public class MainActivity extends Activity {

ProgressDialog barProgressDialog;

Handler updateBarHandler;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

updateBarHandler = new Handler();

}

public void launchRingDialog(View view) {

final ProgressDialog ringProgressDialog = ProgressDialog.show(MainActivity.this, "Please wait ...", "Downloading Image ...", true);

ringProgressDialog.setCancelable(true);

new Thread(new Runnable() {

@Override

public void run() {

try {

// Here you should write your time consuming task...

// Let the progress ring for 10 seconds...

Thread.sleep(10000);

} catch (Exception e) {

}

ringProgressDialog.dismiss();

}

}).start();

}

public void launchBarDialog(View view) {

barProgressDialog = new ProgressDialog(MainActivity.this);

barProgressDialog.setTitle("Downloading Image ...");

barProgressDialog.setMessage("Download in progress ...");

barProgressDialog.setProgressStyle(barProgressDialog.STYLE_HORIZONTAL);

barProgressDialog.setProgress(0);

barProgressDialog.setMax(20);

barProgressDialog.show();

new Thread(new Runnable() {

@Override

public void run() {

try {

// Here you should write your time consuming task...

while (barProgressDialog.getProgress() <= barProgressDialog.getMax()) {

Thread.sleep(2000);

updateBarHandler.post(new Runnable() {

public void run() {

barProgressDialog.incrementProgressBy(2);

}

});

if (barProgressDialog.getProgress() == barProgressDialog.getMax()) {

barProgressDialog.dismiss();

}

}

} catch (Exception e) {

}

}

}).start();

}

}

[/shcode]

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام ایا کسی سورس اماده یا اموزش ساخت برای دانلود فایل که همراه با نشان دادن میزان دانلود بصورت پروکس دیالوگ و یا به روش های دیگه نداره

لینک ارسال
به اشتراک گذاری در سایت های دیگر

ممنون با استفاده از کد موجود زیر اینکار رو انجام دادم

فقط برنامه اندروید که دانلود میشه می خواهم به طور اتوماتیک نصب بشه یا حداقل پیغام نصب به کاربر بده باید چیکار کنم

[shcode=java]

import java.io.BufferedInputStream;

import java.io.FileOutputStream;

import java.io.InputStream;

import java.io.OutputStream;

import java.net.URL;

import java.net.URLConnection;

 

import android.app.Activity;

import android.app.Dialog;

import android.app.ProgressDialog;

import android.graphics.drawable.Drawable;

import android.os.AsyncTask;

import android.os.Bundle;

import android.os.Environment;

import android.util.Log;

import android.view.View;

import android.widget.Button;

import android.widget.ImageView;

import android.widget.Toast;

 

public class Download extends Activity {

      // دکمه برای نمایش یک پنجره نمایش دهنده پروگرس

  Button btnShowProgress;

  //نمایش گر تصویر برای نمایش عکس بعد از دانلود

  ImageView my_image;

  // Progress Dialog

  private ProgressDialog pDialog;

  // Progress dialog type (0 - برای نوار پیشرفت افقی)

  public static final int progress_bar_type = 0;

  // آدرس فایل برای دانلود

  private static String file_url = "http://dl.androidha.com/android/dey-93/Oddworld_Stranger's_Wrath_v1.0.5_Andreno_www.AndroidHa.com.apk";

  @Override

  public void onCreate(Bundle savedInstanceState) {

      super.onCreate(savedInstanceState);

      setContentView(R.layout.download);

      // نمایش دکمه پروگرس بار

      btnShowProgress = (Button) findViewById(R.id.btnProgressBar);

      // نمایشگر تصویر برای نمایش تصویر بعد از دانلود

      my_image = (ImageView) findViewById(R.id.my_image);

      /**

       * Show Progress bar click event

       * */

      btnShowProgress.setOnClickListener(new View.OnClickListener() {

          @Override

          public void onClick(View v) {

              //جدید Async Taskشروع یک

              new DownloadFileFromURL().execute(file_url);

          }

      });

      /**

       *  Dialogنمایش

       * */

  }

 

 

  protected Dialog onCreateDialog(int id) {

      switch (id) {

      case progress_bar_type:

          pDialog = new ProgressDialog(this);

          pDialog.setMessage("در حال دانلود ...لطفا صبر کنید");

          pDialog.setIndeterminate(false);

          pDialog.setMax(100);

          pDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);

          pDialog.setCancelable(true);

          pDialog.show();

          return pDialog;

      default:

          return null;

      }

  }

  /**

   * Background Async Task to download file

   * */

  class DownloadFileFromURL extends AsyncTask {

      /**

       قبل از شروع دانلود می گیم پروگرس بار رو به نمایش بزار

       * */

      @Override

      protected void onPreExecute() {

          super.onPreExecute();

          showDialog(progress_bar_type);

      }

      /**

      دانلود فایل در یک نخ جدا

       * */

      @Override

      protected String doInBackground(String... f_url) {

          int count;

          try {

              URL url = new URL(f_url[0]);

              URLConnection conection = url.openConnection();

              conection.connect();

              // به دست آوردن حجم فایل

              int lenghtOfFile = conection.getContentLength();

              // input stream برای خواندن فایل- with 8k buffer

              InputStream input = new BufferedInputStream(url.openStream(), 8192);

              // Output stream برای ذخیره فایل

              OutputStream output = new FileOutputStream("/sdcard/shop.apk");

              byte data[] = new byte[1024];

              long total = 0;

              while ((count = input.read(data)) != -1) {

                  total += count;

                  // publishing the progress....

                  // صدا زده خواهد شد onProgressUpdate بعد از این

                  publishProgress(""+(int)((total*100)/lenghtOfFile));

                  // نوشتن اطلاعات داخل فایل

                  output.write(data, 0, count);

              }

              // flushing output

              output.flush();

              //  هاstreamبستن

              output.close();

              input.close();

          } catch (Exception e) {

              Log.e("Error: ", e.getMessage());

          }

          return null;

      }

      /**

       بروزکردن پروگرس بار

       * */

      protected void onProgressUpdate(String... progress) {

          //تنظیم مقدار پروگرس بار

          pDialog.setProgress(Integer.parseInt(progress[0]));

     }

      /**

       بعد از اتمام کار

       * **/

      @SuppressWarnings("deprecation")

        @Override

      protected void onPostExecute(String file_url) {

          // لغو نمایش پروگرس بار بعد از اتمام دانلود

          dismissDialog(progress_bar_type);

Toast.makeText(getApplicationContext(), "با موفقیت نصب شد", 7000).show();

}}}

[/shcode]

لینک ارسال
به اشتراک گذاری در سایت های دیگر

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...