2

Ich versuche, eine mobile Anwendung zu machen, aber wenn ich versuche, den Knopf zu drücken, bekomme ich einen Absturz. Der Button sollte mich zu einer neuen Activity-Seite führen, ich habe bereits die anderen Seiten mit dem Button richtig verbunden. ich frage mich nur, wenn dieser Code korrekt ist oder nicht:Immer einen Absturz, wenn ich einen Knopf drücke "Android Studio"

public class MainActivity extends AppCompatActivity { 

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




    } 

    public void onButtonClick(View v) 
    { 
     Button a1= (Button) findViewById(R.id.button); 
     a1.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Intent intent = new Intent(MainActivity.this, SecondPage.class); 
       startActivity(intent); 
      } 
     }); 

    } 
    public void onButtonClick1(View c) 
    { 
     Button a1= (Button) findViewById(R.id.button2); 
     a1.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Intent intent=new Intent(MainActivity.this, ThirdPage.class); 
       startActivity(intent); 
      } 
     }); 

    } 
    public void onButtonClick2(View d) 
    { 
     Button a1= (Button) findViewById(R.id.button3); 
     a1.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Intent intent=new Intent(MainActivity.this, FourthPage.class); 
       startActivity(intent); 
      } 
     }); 

    } 
    public void onButtonClick3(View f) 
    { 
     Button a1= (Button) findViewById(R.id.button4); 
     a1.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Intent intent=new Intent(MainActivity.this, FifthPage.class); 
       startActivity(intent); 
      } 
     }); 

    } 

} 

ich lernte Java nur von einigen Videos im Youtube, so bin ich nicht sicher, ob ich die Aktivitätsfunktion gut oder nicht. Danke

+6

Beitrag der logcat bitte. –

+2

Bitte überprüfen Sie, ob die neue (aufgerufene) Aktivität in Ihrer Manifest-Datei deklariert ist. – statosdotcom

+0

Definiere finViewById innerhalb onCreate() Methode. –

Antwort

0

Es kann einige Gründe geben, nachdem es

1) Stellen Sie sicher, dass Sie definierte Aktivität in Manifest-Datei

2) überprüfen android:onClick="" in XML-Datei ..

ODER

Versuchen Sie Binding Buttons in onCreate() Methode.

und Sie können einfach diese für onClick verwenden

a1.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Intent intent = new Intent(MainActivity.this, SecondPage.class); 
      startActivity(intent); 
     } 
    }); 
+1

Vielen Dank, ich habe vergessen, die Aktivität in Manifest-Datei zu definieren. – AD01

0

entfernen onClick in Ihrem activity_main.xml Dateiattribut und kopieren und diesen Code in Ihre MainActivity.java Datei

public class MainActivity extends AppCompatActivity { 

    Button b1,b2,b3,b4; 

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


     b1= (Button) findViewById(R.id.button); 
     b2= (Button) findViewById(R.id.button2); 
     b3= (Button) findViewById(R.id.button3); 
     b4= (Button) findViewById(R.id.button4); 

     b1.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Intent intent = new Intent(MainActivity.this, SecondPage.class); 
       startActivity(intent); 
      } 
     }); 


     b2.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Intent intent=new Intent(MainActivity.this, ThirdPage.class); 
       startActivity(intent); 
      } 
     }); 


     b3.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Intent intent=new Intent(MainActivity.this, FourthPage.class); 
       startActivity(intent); 
      } 
     }); 


     b4.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Intent intent=new Intent(MainActivity.this, FifthPage.class); 
       startActivity(intent); 
      } 
     }); 

    } 

} 
+0

Danke !! dieser Code half mir viel :) – AD01

0

Wenn Sie verwenden das onclick Attribut im Layout-XML, dann müssen Sie den onclick Listener nicht festlegen. Wenn Sie nicht onclick verwenden, müssen Sie klicken Sie auf Listener. In Ihrem Fall verwende ich onclick Attribut in Layout XML und auch versuchen, die klicken Listener mit Java-Code verwenden. so müssen Sie entweder verwenden Onclick Attribut in Layout XML oder verwenden setOnCliickListener() in Java-Code

+0

Verstanden. Danke, du hast es mir sehr gut erklärt ^^. – AD01

Verwandte Themen