0

こんにちは、ダウンロード プロセス アクティビティを作成しました。ボタンのクリックで実行されます。このアクティビティは、リスト項目のクリックで開きます。しかし、今は、ボタンのクリックではなく、listitem のクリックでダウンロード プロセスを実行したいと考えています。

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;

    }

この質問を無視しないでください。よろしくお願いします。私の英語で申し訳ありません。

4

1 に答える 1