2016-04-09 15 views
0

Ich wollte vermeiden, diese Frage zu beantworten und es selbst herauszufinden, aber nach einem ganzen vergeudeten Nachmittag bin ich hier. Ich versuche 3 Tasten zu laden, wenn meine App startet. Ich habe versucht, mehrere startActivities zu verwenden, aber nur einer würde auf einmal laden, und ich bin mir nicht sicher, warum. Ich habe auch versucht, AsyncTasks zu verwenden, aber sie schienen zu komplex für das zu sein, was ich versuchte. Zum Beispiel würde eine der Schaltflächen die Google Maps-Anwendung öffnen. Ich habe bereits den Code und hatte das funktioniert, aber ich will einen Knopf, der das tut und 2 andere Knöpfe, die verschiedene Dinge tun.Wie lade ich mehrere Tasten gleichzeitig?

Antwort

0

Du wird eine AsyncTask wie diese haben zu verwenden:

Wenn Sie auf die Schaltfläche klicken, wird es die AsyncTask ausführen:

public void ThirtySecVideoPlayer(){ 
    ThirtySecondImageButton =  (ImageButton)findViewById(R.id.ThirtySecAdImageButton); 
    ThirtySecondImageButton.setOnClickListener(
      new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 

        String Category = "Cleaninig"; 

        String ProductUploadMethod = "ProductUploadMethod"; 
        ProductUpload ProductUpload = new ProductUpload(); 
        ProductUpload.execute(ProductUploadMethod, Category); 
       } 
      } 
    ); 

} 

Dann in Ihrem AsyncTask erhalten Sie die params und wir es im AsyncTask:

private class ProductUpload extends AsyncTask<String, Void, String> { 

    @Override 
    protected void onPreExecute() { 

    } 

    @Override 
    protected String doInBackground(String... params) { 

     String Category = params[1]; 

    } 

     @Override 
     protected void onPostExecute (String result){ 

      } 
     } 

     @Override 
     protected void onProgressUpdate (Void...values){ 
     } 
} 

können Sie auf die Schaltfläche Code für jede Taste verwenden und dann die gleiche AsyncTask nennen, aber Sie müssen sicherstellen, dass die variablen Kategorie ausführt der richtige Code in der DoInBackround mit einer If-Anweisung!

0

Sie können die Schaltfläche dynamisch in Ihrer onCreate-Methode erstellen.

// this is the text to put in the created button 
String[] btnText = ["Button 1", "Button 2","Button 3"]; 
// the ID allows to determine witch button was pressed 
int btnID = 0; 
// in the for web be created the 3 button dynamically 
for(int i = 0; i<3; i++){ 
final Button Btn = new Button(this); 
Btn.setText(btnText[]); 

//This is to give the button the size he need to wrap the text in it 
LinearLayout.LayoutParams LayoutParams = new LinearLayout.LayoutParams(LayoutParams.wrap_content, LayoutParams.wrap_content); 
Btn.setLayoutParams(LayoutParams); 

Btn.setId(btnID); 

btnID ++; 

Btn.setOnClickListener(new OnClickListener(){ 

//This returns the Id of the clicked button 
// the Id of each button was set by the "Btn.setId(btnID);" 
DetectclickedButton(Btn.getId()); 
    }); 
} 

public void DetectclickedButton(id){ 

switch(id){ 
case 1: 
// Do something in the click of the 1 button 
break; 
case 2: 
// Do something in the click of the 2 button 
break; 
case 3: 
// Do something in the click of the 3 button 
break; 
} 

} 
+0

Können Sie mir helfen mit dem, was ich gerade in diesem Thread gepostet habe? – deeup511

Verwandte Themen