2

Я пытаюсь создать мобильное приложение, но когда я пытаюсь нажать кнопку, я получаю сбой. Кнопка должна перейти на новую страницу активности, я уже правильно подключил другие страницы с помощью кнопки. Я просто интересно, если этот код является правильным или нет:Получение сбоя каждый раз, когда я нажимаю кнопку «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); 
      } 
     }); 

    } 

} 

я только что узнал, Java от некоторых видео в YouTube, так что я не уверен, если я сделал функцию активности хорошо или нет. Спасибо

+6

сообщение LogCat пожалуйста. –

+2

Пожалуйста, проверьте, объявлена ​​ли новая (вызываемая) активность в вашем файле манифеста. – statosdotcom

+0

Определите finViewById внутри метода onCreate(). –

ответ

0

Там может быть несколько причин, после того, как

1) Убедитесь, что вы определили активность в файле манифеста

2) Проверьте android:onClick="" в XML-файле ..

ИЛИ

Попробуйте привязать кнопки в методе onCreate().

и Вы можете просто использовать это для OnClick

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

Большое спасибо, я забыл определить действие в файле манифеста. – AD01

0

Удалить атрибут OnClick в файле activity_main.xml и скопировать и мимо этого кода в файлеMainActivity.java

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

Спасибо! этот код мне очень помог :) – AD01

0

Если вы используете атрибут onclick в формате XML, тогда вам не нужно устанавливать onclick прослушиватель. Если вы не используете onclick, тогда вам нужно установить клик прослушивателя. В вашем случае ваш случай, я думаю, использование использует onclick атрибут в макете XML, а также пытается установить клик прослушивателя при использовании кода Java. так что вам нужно использовать либо OnClick атрибут разметки XML или использовать setOnCliickListener() в Java коде

+0

Понял. Спасибо, ты мне это очень хорошо объяснил ^^. – AD01

Смежные вопросы