Note that there are some explanatory texts on larger screens.

plurals
  1. POPassing Data Through Intents & A single AsyncTask
    primarykey
    data
    text
    <p>I have multiple buttons, and each, when clicked, load the same class. In this class, I have an AsyncTask, and I also have two buttons. One is to install the theme. Basically, all I need to do when you click install is to download a file. The thing is, I need to download the file corresponding to the button I pressed in the first class. Basically, I need an if statement, and saying if button x is pressed, download this file, but if button y is pressed, download this other file. I attempted to do it myself, but failed. Below is my classes. I basically need help downloading the file corresponding to the button that was pressed...</p> <p>BootFragment.java:</p> <pre><code> package com.cydeon.plasmamodz; import java.io.File; import java.io.IOException; import java.util.concurrent.TimeoutException; import com.stericson.RootTools.RootTools; import com.stericson.RootTools.exceptions.RootDeniedException; import com.stericson.RootTools.execution.CommandCapture; import android.app.Fragment; import android.content.Intent; import android.os.Bundle; import android.os.Environment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.Button; public class BootFragment extends Fragment {{ //Defining File Directory File directory = new File(Environment.getExternalStorageDirectory() + "/plasma/boot"); if(directory.exists() &amp;&amp; directory.isDirectory()){ //Do nothing. Directory is existent }else{ //Directory does not exist. Make directory (First time app users) directory.mkdirs(); } File bkup = new File(Environment.getExternalStorageDirectory() + "/plasma/boot/bkup"); if(bkup.exists() &amp;&amp; bkup.isDirectory()){ //Do nothing. Directory is existent }else{ //Directory does not exist. Make directory (First time app users) bkup.mkdirs(); }} @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.boot_frag, container, false); Button Ablue = (Button) view.findViewById(R.id.bABlue); Button AblueR = (Button) view.findViewById(R.id.bABlueR); Button Abokeh = (Button) view.findViewById(R.id.bAbokeh); Ablue.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View arg0) { Intent b = new Intent(getActivity(), Boots.class); b.putExtra("Dragon", R.id.bABlue); BootFragment.this.startActivity(b); } }); AblueR.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View arg0) { Intent c = new Intent(getActivity(), Boots.class); c.putExtra("Xbox", R.id.bABlueR); BootFragment.this.startActivity(c); } }); Abokeh.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View arg0) { Intent d = new Intent(getActivity(), Boots.class); d.putExtra("GameB", R.id.bAbokeh); BootFragment.this.startActivity(d); } }); return view; }} </code></pre> <p>Boots.java:</p> <pre><code> package com.cydeon.plasmamodz; import com.stericson.RootTools.*; import com.stericson.RootTools.exceptions.RootDeniedException; import com.stericson.RootTools.execution.CommandCapture; import java.io.BufferedInputStream; import java.io.BufferedReader; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.Reader; import java.net.URL; import java.net.URLConnection; import java.util.List; import java.util.concurrent.TimeoutException; import com.cydeon.plasmamodz.R; import android.app.ActionBar; import android.app.Activity; import android.app.DownloadManager; import android.app.ProgressDialog; import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.net.Uri; import android.os.AsyncTask; import android.os.Build; 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.TextView; import android.widget.Toast; //Class for Boot Animation Blue Kindle public class Boots extends Activity { public static String TAG = "Boots"; Process process; private class DownloadFile extends AsyncTask&lt;String, Integer, String&gt;{ @Override protected String doInBackground(String... sURL) { try{ URL url = new URL(sURL[0]); URLConnection connection = url.openConnection(); connection.connect(); //Shows 0-100% progress bar int fileLength = connection.getContentLength(); //Download the file InputStream input = new BufferedInputStream(url.openStream()); OutputStream output = new FileOutputStream("/sdcard/plasma/boot/b..ootanimation.zip"); byte data[] = new byte[1024]; long total = 0; int count; while ((count = input.read(data)) != -1) { total += count; //Publish the Progress publishProgress((int) (total * 100/fileLength)); output.write(data, 0, count); } output.flush(); output.close(); input.close(); } catch (Exception e) { } return null; } @Override protected void onPreExecute() { super.onPreExecute(); mProgressDialog.show(); } @Override protected void onProgressUpdate(Integer... progress){ super.onProgressUpdate(progress); mProgressDialog.setProgress(progress[0]); } @Override protected void onPostExecute(String result) { // TODO Auto-generated method stub super.onPostExecute(result); mProgressDialog.dismiss(); Context context = getApplicationContext(); CharSequence text = "Installing. Please Wait"; int duration = Toast.LENGTH_SHORT; Toast toast = Toast.makeText(context, text, duration); toast.show(); if (RootTools.isBusyboxAvailable()){ RootTools.remount("/system", "rw"); CommandCapture command = new CommandCapture(0, "su", "sh /sdcard/plasma/scripts/boots.sh"); try { RootTools.getShell(true).add(command).waitForFinish(); } catch (InterruptedException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (TimeoutException e) { e.printStackTrace(); } catch (RootDeniedException e) { e.printStackTrace(); } } else { RootTools.offerBusyBox(Boots.this); } } } ProgressDialog mProgressDialog; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.boots); ActionBar actionBar = getActionBar(); actionBar.hide(); ImageView img = (ImageView) findViewById(R.id.iv2); img.setImageResource(R.drawable.boot1); Button install = (Button) findViewById(R.id.bAInstall); Button rtrn = (Button) findViewById(R.id.bAReturn); mProgressDialog = new ProgressDialog(Boots.this); mProgressDialog.setMessage("Downloading..." ); mProgressDialog.setIndeterminate(false); mProgressDialog.setMax(100); mProgressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); install.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View arg0) { TextView creator = (TextView) findViewById(R.id.tvCreate); Intent bootI = getIntent(); int dball = getIntent().getExtras().getInt("Dragon", -1); int xbox = getIntent().getExtras().getInt("Xbox", -1); int GameB = getIntent().getExtras().getInt("GameB", 1); if (dball != -1){ DownloadFile downloadFile = new DownloadFile(); downloadFile.execute("http:\\correspondingurl"); creator.setText("Dragon Ball"); }if (xbox != -1){ DownloadFile downloadFile = new DownloadFile(); downloadFile.execute("http:\\correspondingurl"); creator.setText("Xbox"); }if (GameB != -1){ DownloadFile downloadFile = new DownloadFile(); downloadFile.execute("http:\\correspondingurl"); creator.setText("GameBoy"); } } } ); rtrn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View arg0) { finish(); } }); } } </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload