انجمن سایت کلیدستان


رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
دانلود با کلیک روی دکمه (در برنامه نویسی اندروید)

دانلود با کلیک روی دکمه (در برنامه نویسی اندروید)

#1
درود به همه ی دوستان
در این لینک http://www.kelidestan.com/keys/keys.php?key=296 به خوبی یاد داده شده که چطور دانلود انجام بشه (با اجرای برنامه دانلود آغاز میشه).حالا اگر بخوایم همین دانلود از طریق کلیک روی دکمه انجام بشه باید چه تغییری بدیم تو این برنامه؟
setonclicklistener رو هرجا نوشتم خطا داد.لطفا راهنماییم کنین
سپاس
پاسخ

دانلود با کلیک روی دکمه (در برنامه نویسی اندروید)

#2
سلام.
ابتدا توصیه می کنم نگاهی به موضوع زیر بیندازید که در آن یک Download Manager نسبتا کامل را معرفی کرده ایم :

http://www.kelidestan.com/forum/showthread.php?tid=4963

اما در مورد سوال شما :
در کلید زیر، در مورد ساخت یک دکمه (Button) و تعیین کدهایی برای اجرا شدن در هنگام اشاره بر روی دکمه، توضیحاتی داده ایم :

کلید شماره 2728

مطابق آن باید یک Button را در فایل xml تعریف کنید و سپس کدهای Activity را تغییر بدهید.
فرض می کنیم که دکمه را در فایل xml تعریف کرده اید. اکنون قصد داریم که کدهای لازم در Activity را بنویسیم. در مبحث مربوط به دانلود، کدهای روش onCreate (که در واقع به محض اجرای Activity ، این کدها اجرا می شوند) را به صورت زیر نوشته ایم :

کد پی‌اچ‌پی:
@Override
         
protected void onCreate(Bundle savedInstanceState) {
                 
super.onCreate(savedInstanceState);
                 
setContentView(R.layout.activity_main);

                 
// instantiate it within the onCreate method
                 
mProgressDialog = new ProgressDialog(MainActivity.this); // MainActivity = activity name
                 
mProgressDialog.setMessage("A message");
                 
mProgressDialog.setIndeterminate(true);
                 
mProgressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
                 
mProgressDialog.setCancelable(true);

                 
// execute this when the downloader must be fired
                 
final DownloadTask downloadTask = new DownloadTask(MainActivity.this); // MainActivity = activity name
                 
downloadTask.execute("http://www.kelidestan.com/file.apk"); // the url to the file you want to download
                 
                 
mProgressDialog.setOnCancelListener(new DialogInterface.OnCancelListener() {
                     @
Override
                     
public void onCancel(DialogInterface dialog) {
                         
downloadTask.cancel(true);
                     }
                 });
         } 

بنابراین کدهای مربوط به دانلود در روش onCreate ، کدهای زیر می باشند :

کد پی‌اچ‌پی:
// instantiate it within the onCreate method
                 
mProgressDialog = new ProgressDialog(MainActivity.this); // MainActivity = activity name
                 
mProgressDialog.setMessage("A message");
                 
mProgressDialog.setIndeterminate(true);
                 
mProgressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
                 
mProgressDialog.setCancelable(true);

                 
// execute this when the downloader must be fired
                 
final DownloadTask downloadTask = new DownloadTask(MainActivity.this); // MainActivity = activity name
                 
downloadTask.execute("http://www.kelidestan.com/file.apk"); // the url to the file you want to download
                 
                 
mProgressDialog.setOnCancelListener(new DialogInterface.OnCancelListener() {
                     @
Override
                     
public void onCancel(DialogInterface dialog) {
                         
downloadTask.cancel(true);
                     }
                 }); 

پس کدهای Button به همراه کدهای فوق، به صورت زیر خواهد بود (در کل آنها را در روش onCreate) می نویسیم (که با اشاره بر روی Button ، کدهای دانلود اجرا شوند) :

کد پی‌اچ‌پی:
@Override
         
protected void onCreate(Bundle savedInstanceState) {
                 
super.onCreate(savedInstanceState);
                 
setContentView(R.layout.activity_main);

             
Button b = (ButtonfindViewById(R.id.button1);
             
b.setOnClickListener(new OnClickListener() {
                                  
             @
Override
             
public void onClick(View v) {
                 
// instantiate it within the onCreate method
                 
mProgressDialog = new ProgressDialog(MainActivity.this); // MainActivity = activity name
                 
mProgressDialog.setMessage("A message");
                 
mProgressDialog.setIndeterminate(true);
                 
mProgressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
                 
mProgressDialog.setCancelable(true);

                 
// execute this when the downloader must be fired
                 
final DownloadTask downloadTask = new DownloadTask(MainActivity.this); // MainActivity = activity name
                 
downloadTask.execute("http://www.kelidestan.com/file.apk"); // the url to the file you want to download
                 
                 
mProgressDialog.setOnCancelListener(new DialogInterface.OnCancelListener() {
                     @
Override
                     
public void onCancel(DialogInterface dialog) {
                         
downloadTask.cancel(true);
                     }
                 });
             }
        }); 

بنابراین کدهای روش onCreate به صورت بالا تغییر داده می شود.

bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ
 سپاس شده توسط alidarbedar

دانلود با کلیک روی دکمه (در برنامه نویسی اندروید)

#3
سپاسگزارم اینقدر وقت گذاشتین.مشکلم حل شد Smile)
پاسخ
 سپاس شده توسط admin

دانلود با کلیک روی دکمه (در برنامه نویسی اندروید)

#4
(۱۳۹۳/۱۰/۱۲, ۰۲:۰۱ ب.ظ)'admin' نوشته: سلام.
ابتدا توصیه می کنم نگاهی به موضوع زیر بیندازید که در آن یک Download Manager نسبتا کامل را معرفی کرده ایم :

http://www.kelidestan.com/forum/showthread.php?tid=4963

اما در مورد سوال شما :
در کلید زیر، در مورد ساخت یک دکمه (Button) و تعیین کدهایی برای اجرا شدن در هنگام اشاره بر روی دکمه، توضیحاتی داده ایم :

کلید شماره 2728

مطابق آن باید یک Button را در فایل xml تعریف کنید و سپس کدهای Activity را تغییر بدهید.
فرض می کنیم که دکمه را در فایل xml تعریف کرده اید. اکنون قصد داریم که کدهای لازم در Activity را بنویسیم. در مبحث مربوط به دانلود، کدهای روش onCreate (که در واقع به محض اجرای Activity ، این کدها اجرا می شوند) را به صورت زیر نوشته ایم :

کد پی‌اچ‌پی:
@Override
         
protected void onCreate(Bundle savedInstanceState) {
                 
super.onCreate(savedInstanceState);
                 
setContentView(R.layout.activity_main);

                 
// instantiate it within the onCreate method
                 
mProgressDialog = new ProgressDialog(MainActivity.this); // MainActivity = activity name
                 
mProgressDialog.setMessage("A message");
                 
mProgressDialog.setIndeterminate(true);
                 
mProgressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
                 
mProgressDialog.setCancelable(true);

                 
// execute this when the downloader must be fired
                 
final DownloadTask downloadTask = new DownloadTask(MainActivity.this); // MainActivity = activity name
                 
downloadTask.execute("http://www.kelidestan.com/file.apk"); // the url to the file you want to download
                 
                 
mProgressDialog.setOnCancelListener(new DialogInterface.OnCancelListener() {
                     @
Override
                     
public void onCancel(DialogInterface dialog) {
                         
downloadTask.cancel(true);
                     }
                 });
         } 

بنابراین کدهای مربوط به دانلود در روش onCreate ، کدهای زیر می باشند :

کد پی‌اچ‌پی:
// instantiate it within the onCreate method
                 
mProgressDialog = new ProgressDialog(MainActivity.this); // MainActivity = activity name
                 
mProgressDialog.setMessage("A message");
                 
mProgressDialog.setIndeterminate(true);
                 
mProgressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
                 
mProgressDialog.setCancelable(true);

                 
// execute this when the downloader must be fired
                 
final DownloadTask downloadTask = new DownloadTask(MainActivity.this); // MainActivity = activity name
                 
downloadTask.execute("http://www.kelidestan.com/file.apk"); // the url to the file you want to download
                 
                 
mProgressDialog.setOnCancelListener(new DialogInterface.OnCancelListener() {
                     @
Override
                     
public void onCancel(DialogInterface dialog) {
                         
downloadTask.cancel(true);
                     }
                 }); 

پس کدهای Button به همراه کدهای فوق، به صورت زیر خواهد بود (در کل آنها را در روش onCreate) می نویسیم (که با اشاره بر روی Button ، کدهای دانلود اجرا شوند) :

کد پی‌اچ‌پی:
@Override
         
protected void onCreate(Bundle savedInstanceState) {
                 
super.onCreate(savedInstanceState);
                 
setContentView(R.layout.activity_main);

             
Button b = (ButtonfindViewById(R.id.button1);
             
b.setOnClickListener(new OnClickListener() {
                                  
             @
Override
             
public void onClick(View v) {
                 
// instantiate it within the onCreate method
                 
mProgressDialog = new ProgressDialog(MainActivity.this); // MainActivity = activity name
                 
mProgressDialog.setMessage("A message");
                 
mProgressDialog.setIndeterminate(true);
                 
mProgressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
                 
mProgressDialog.setCancelable(true);

                 
// execute this when the downloader must be fired
                 
final DownloadTask downloadTask = new DownloadTask(MainActivity.this); // MainActivity = activity name
                 
downloadTask.execute("http://www.kelidestan.com/file.apk"); // the url to the file you want to download
                 
                 
mProgressDialog.setOnCancelListener(new DialogInterface.OnCancelListener() {
                     @
Override
                     
public void onCancel(DialogInterface dialog) {
                         
downloadTask.cancel(true);
                     }
                 });
             }
        }); 

بنابراین کدهای روش onCreate به صورت بالا تغییر داده می شود.



 
این که همش ارور downloadtask میده؟!!
پاسخ

دانلود با کلیک روی دکمه (در برنامه نویسی اندروید)

#5
سلام وخسته نباشید.مشکل دانلود رو حل کردم.البته اول یه خلاصه از ساختار برنامه بگم:
یه Main داریم با یه دکمه یا ایمیج باتن که با کلیک روش باید یک فایل mp3دانلود شه در مسیر sdcard.حالا از این به بعد دیگه با کلیک روش دانلود نکمه و پخش کنه فایلو.پس یه اکتیویتی Download و یه اکتیویتی واسه پخشش ساختم.برای جابه جا شدن بینشونم از intent استفاده کردم ولی مشکل اینه که با هربار کلیک دانلود میکنه فایلو.
توضیحات :
Main1 : اکتیویتی اصلی و اولیه
Main2: اکتیویتی شامل مدیا پلیر و پخش فایل صوتی
Main_Download:اکتیویتی دانلود فایل
 
کد پی‌اچ‌پی:
        imageView1_main.setOnClickListener(new OnClickListener() {
            public 
void onClick(View arg0) {
                
File file2=new File("/mnt/scdard/c/music.mp3");
                if (
file2.exists()==true){
                     
Intent j=new Intent(Main1.this,Main2.class) ;
                     
startActivity(j);
                                          }
                else
                    {
                    
Intent mydownload=new Intent(Main.this,Main_Download.class) ;
                     
startActivity(mydownload);
                     
                    }
            } 

سپاسگزار میشم راهنماییم کنید.
پاسخ

دانلود با کلیک روی دکمه (در برنامه نویسی اندروید)

#6
(۱۳۹۴/۰۳/۰۵, ۰۱:۲۱ ق.ظ)'samaneh_62' نوشته: سلام وخسته نباشید.مشکل دانلود رو حل کردم.البته اول یه خلاصه از ساختار برنامه بگم:
یه Main داریم با یه دکمه یا ایمیج باتن که با کلیک روش باید یک فایل mp3دانلود شه در مسیر sdcard.حالا از این به بعد دیگه با کلیک روش دانلود نکمه و پخش کنه فایلو.پس یه اکتیویتی Download و یه اکتیویتی واسه پخشش ساختم.برای جابه جا شدن بینشونم از intent استفاده کردم ولی مشکل اینه که با هربار کلیک دانلود میکنه فایلو.
توضیحات :
Main1 : اکتیویتی اصلی و اولیه
Main2: اکتیویتی شامل مدیا پلیر و پخش فایل صوتی
Main_Download:اکتیویتی دانلود فایل 
کد پی‌اچ‌پی:
        imageView1_main.setOnClickListener(new OnClickListener() {
            public 
void onClick(View arg0) {
                
File file2=new File("/mnt/scdard/c/music.mp3");
                if (
file2.exists()==true){
                     
Intent j=new Intent(Main1.this,Main2.class) ;
                     
startActivity(j);
                                          }
                else
                    {
                    
Intent mydownload=new Intent(Main.this,Main_Download.class) ;
                     
startActivity(mydownload);
                     
                    }
            } 

سپاسگزار میشم راهنماییم کنید.



 


سلام.
ابتدا توصیه می کنم که برنامه اندروید را به صورتی طراحی کنید که برای هر عملیات، یک روش (method) تعریف شده باشد. پس تا اینجا فرض می کنم که شما یک method نوشته اید که با اجرای آن، عملیات دانلود انجام می شود (کلید شماره 2801).
وقتی کاربر بر روی دکمه (Button) اشاره می کند، باید ابتدا چک کنیم که قبلا فایل دانلود شده یا نه. اگر دانلود نشده، method مربوط به دانلود را اجرا می کنیم (یا اگر دوست ندارید method تعریف کنید، کدش رو مستقیم بنویسید)، اما اگر قبلا دانلود شده بود، می توانید یک پیام به کاربر نمایش بدهید یا فایل اجرا شود یا ... . معمولا در ابتدای اجرای خود Activity ، چک می کنند که کدام فایل ها دانلود شده اند، آنهایی که دانلود شده اند، به جای عبارت ((دانلود))، بر روی دکمه، عبارت ((پخش)) نوشته می شود، وقتی هم روی دکمه اشاره شد، یا دانلود داریم یا پخش موسیقی.
اما برای چک کردن اینکه فایل دانلود شده یا نه، یا می توانید در آدرسی که باید فایل ذخیره شود، چک کنید که فایل وجود دارد یا نه، یا اینکه از مواردی مثل SharedPreferences برای ذخیره حالت دانلود استفاده کنید. یعنی یک متغیر را با SharedPreferences تعریف می کنید که مقدار اولیه آن برابر 0 است و بعد از دانلود فایل، آن را به 1 تغییر می دهیم.
برای کار با SharedPreferences  ، دسته بندی زیر را ببینید :

http://www.kelidestan.com/keys/categorie...ategory=10

در ضمن در مورد آدرس دهی که کد زیر را نوشته اید :

کد پی‌اچ‌پی:
File file2=new File("/mnt/scdard/c/music.mp3"); 

توصیه می کنم که موضوع زیر را بخوانید زیرا این نوع آدرس دهی ممکن است در برخی گوشی ها خطا ایجاد کند (/mnt/scdard/ مشابه /scdard/ می باشد) :

http://www.kelidestan.com/forum/showthread.php?tid=5682

bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ
 سپاس شده توسط samaneh_62 ، شماره مجازی امارات ، تلگرام ضد فیلتر 2023


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان