0

Привет, я создал операцию загрузки и запускается при нажатии кнопки. Это действие открывается щелчком по списку. Но теперь я хочу запустить процесс загрузки по щелчку lisitem, нажав кнопку щелчка.Нужна помощь по щелчку списка в android

ZipDownloader.java

import java.io.File; 

import android.app.Activity; 
import android.app.ProgressDialog; 
import android.os.AsyncTask; 
import android.os.Bundle; 
import android.view.View; 
import android.view.WindowManager; 
import android.widget.Toast; 

import com.kabelash.sg.util.DecompressZip; 
import com.kabelash.sg.util.DownloadFile; 
import com.kabelash.sg.util.ExternalStorage; 
import com.kabelash.sg.R; 

public class ZipDownloader extends Activity { 

    protected ProgressDialog mProgressDialog; 

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.zipdownload); 

     // Keep the screen (and device) active as long as this app is frontmost. 
     // This is to avoid going to sleep during the download. 
     getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 
    } 

    /** 
    * Invoked when user presses "Start download" button. 
    */ 
    public void startDownload(View v) { 
     String url = "http://sample.co.uk/sample.zip"; 
     new DownloadTask().execute(url); 
    } 

    /** 
    * Background task to download and unpack .zip file in background. 
    */ 
    private class DownloadTask extends AsyncTask<String,Void,Exception> { 

     @Override 
     protected void onPreExecute() { 
      showProgress(); 
     } 

     @Override 
     protected Exception doInBackground(String... params) { 
      String url = (String) params[0]; 

      try { 
       downloadAllAssets(url); 
      } catch (Exception e) { return e; } 

      return null; 
     } 

    } 

    //Progress window 
    protected void showProgress() { 
     mProgressDialog = new ProgressDialog(this); 
     mProgressDialog.setTitle(R.string.progress_title); 
     mProgressDialog.setMessage(getString(R.string.progress_detail)); 
     mProgressDialog.setIndeterminate(true); 
     mProgressDialog.setCancelable(false); 
     mProgressDialog.show(); 
    } 

    protected void dismissProgress() { 
     // You can't be too careful. 
     if (mProgressDialog != null && mProgressDialog.isShowing() && mProgressDialog.getWindow() != null) { 
      try { 
       mProgressDialog.dismiss(); 
      } catch (IllegalArgumentException ignore) { ; } 
     } 
     mProgressDialog = null; 
    } 



} 

на MainActivity.java

@Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     super.onOptionsItemSelected(item); 

     switch(item.getItemId()){ 
      case R.id.update: 
       Intent intent = new Intent(this, ZipDownloader.class); 
       startActivity(intent); 
       break; 
     } 
     return true; 

    } 

Пожалуйста, не игнорируйте этот вопрос. Спасибо заранее и извините за мой английский.

+1

«Пожалуйста, игнорируйте этот вопрос». Теперь я просто смущен. –

+0

Вам не нужен ответ? – Pavlos

+0

Я не знаю, что он написал во втором последнем предложении. – Leandros

ответ

1

Вы пробовали чего код AsyncTask в деятельности вы хотите, чтобы ваш ListItem щелкнул, а затем просто

switch(item.getItemId()){ 
     case R.id.update: 
      String url = "http://sample.co.uk/sample.zip"; 
      new DownloadTask().execute(url); 
      break; 
    } 
    return true; 

вызов фоновой задачи OnClick?

+0

Спасибо за вашу идею. Надеюсь, он сработает. Когда я попробую, я дам вам знать. – Kabil