2016-04-25 7 views
1

Ich lerne Android, habe ich zwei Tasten in der Haupttätigkeit und dann von jeder Taste möchte ich neue Aktivität zu öffnen, Taste 2 funktioniert, aber Taste 1 funktioniert nicht, mein Code:zwei Taste zum Öffnen zwei neue Aktivität

public class MainActivity extends Activity { 
    Button btn; 
    Button btn2; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     btn = (Button) findViewById(R.id.button2); 
     btn2 = (Button) findViewById(R.id.button1); 

     btn.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 
       Intent intent = new Intent(MainActivity.this, Allactivities.class); 
       startActivity(intent); 
       Intent i = new Intent(MainActivity.this, Review.class); 
       startActivity(i); 
      } 
     }); 
    } 
} 

XML-Code:

<Button 
    android:id="@+id/button2" 
    android:layout_width="match_parent" 
    android:layout_height="100dp" 
    android:layout_above="@+id/button1" 
    android:layout_marginBottom="26dp" 
    android:background="@drawable/btnbluee" 
    android:text="@string/button_tittle" 
    android:onClick="onClick" /> 

<Button 
    android:id="@+id/button1" 
    android:layout_width="match_parent" 
    android:layout_height="100dp" 
    android:layout_alignParentBottom="true" 
    android:layout_centerHorizontal="true" 
    android:layout_marginBottom="192dp" 
    android:background="@drawable/btnorange" 
    android:text="@string/button_title" 
    android:onClick="onClick" /> 
+2

Sie haben keinen Zuhörer gesetzt. Sie weisen button1 zu btn2 ... –

+0

@MichaelB zu. Ich habe versucht, aber ich habe Fehler (kann den Typ View.OnClickListener nicht instanziieren). – rozi

Antwort

1

Taste 2 funktioniert, aber Taste man nicht arbeiten,

ist dies, weil Sie einen Zuhörer zu jeder Taste hinzufügen müssen:

btn.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      Intent intent = new Intent(MainActivity.this,Allactivities.class); 
      startActivity(intent); 
      Intent i = new Intent(MainActivity.this,Review.class); 
      startActivity(i); 

     } 
    }); 

und

btn2.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      Intent intent = new Intent(MainActivity.this,Allactivities.class); 
      startActivity(intent); 
      Intent i = new Intent(MainActivity.this,Review.class); 
      startActivity(i); 

     } 
    }); 

und nur ein Vorschlag ..

versuchen konsistent zwischen Layout und Code zu sein, werden Sie Ersatz Schmerzen im Nacken ...

btn = (Button)findViewById(R.id.button2); 
btn2= (Button)findViewById(R.id.button1); 

muss sein:

btn = (Button)findViewById(R.id.button1); 
btn2= (Button)findViewById(R.id.button2); 
0

tun wie folgt aus:

public class MainActivity extends Activity { 
    Button btn; 
    Button btn2; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     btn = (Button) findViewById(R.id.button2); 
     btn2 = (Button) findViewById(R.id.button1); 

     btn.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       Intent i = new Intent(MainActivity.this, Review.class); 
       startActivity(i); 
      } 
     }); 

     btn2.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       Intent intent = new Intent(MainActivity.this, Allactivities.class); 
       startActivity(intent); 
      } 
     }); 
    } 
} 
0

versuchen Sie stattdessen:

//set listener button 2 (btn) 
btn.setOnClickListener(new View.OnClickListener() { 

    @Override 
    public void onClick(View v) { 
     // TODO Auto-generated method stub 
     Intent intent = new Intent(MainActivity.this,Allactivities.class) ; 
     startActivity(intent) ; 
    } 
}); 

//set listener button 1 (btn2) 
btn2.setOnClickListener(new View.OnClickListener() { 

    @Override 
    public void onClick(View v) { 
     // TODO Auto-generated method stub 
     Intent i = new Intent(MainActivity.this,Review.class) ; 
     startActivity(i) ; 
    } 
}); 
0

Die gewählte Antwort ist in Ordnung, aber man kann die Lösung mit diesem Beispiel verbessern:

public class Main2Activity extends Activity implements View.OnClickListener { 
    Button btn; 
    Button btn2; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     btn = (Button) findViewById(R.id.button1); 
     btn2 = (Button) findViewById(R.id.button2); 

     btn.setOnClickListener(this); 
     btn2.setOnClickListener(this); 
    } 

    @Override 
    public void onClick(View v) { 
     Intent intent = null; 
     switch (v.getId()){ 
      case R.id.button1: { 
       intent = new Intent(MainActivity.this, Allactivities.class); 
      }break; 
      case R.id.button2: { 
       intent = new Intent(MainActivity.this, Review.class); 
      }break; 
     } 
     if(intent != null){ 
      startActivity(intent); 
     } 
    } 
} 

Mit dem onClick können Sie umgehen t Er ruft Aktionen an, die nach ihrer ID fragen, und Sie schreiben weniger Code. Ich poste nur meine Lösung, um zu verbessern oder eine andere Wahl zu geben.

0

Dies sollte funktionieren und auf diese Weise würden Sie weniger als mit dem OnClickListener

public class MainActivity extends Activity { 

    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
    } 

    public void click(View view){ 
     Intent intent = new Intent(MainActivity.this,Allactivities.class); 
     startActivity(intent); 
     Intent i = new Intent(MainActivity.this,Review.class); 
     startActivity(i); 
    } 
} 

XML-Code schreiben: bis btn2

<Button 
    android:id="@+id/button2" 
    android:layout_width="match_parent" 
    android:layout_height="100dp" 
    android:layout_above="@+id/button1" 
    android:layout_marginBottom="26dp" 
    android:background="@drawable/btnbluee" 
    android:text="@string/button_tittle" 
    android:onClick="click" /> 

<Button 
    android:id="@+id/button1" 
    android:layout_width="match_parent" 
    android:layout_height="100dp" 
    android:layout_alignParentBottom="true" 
    android:layout_centerHorizontal="true" 
    android:layout_marginBottom="192dp" 
    android:background="@drawable/btnorange" 
    android:text="@string/button_title" 
    android:onClick="click" /> 
Verwandte Themen