OnClickListener в Android Studio

Я пытаюсь разработать и использовать приложение, использующее новую студию Android, но я продолжаю получать серьезные ошибки в моем OnClickListeners. В основном это говорит мне, что он не может разрешить символ «setOnClickListener», и он также не может решить «View v»

package com.sigmachi.derbydays; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } Button button= (Button) findViewById(R.id.standingsButton); button.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { startActivity(new Intent(MainActivity.this,StandingsActivity.class)); } }); 

Это код в классе

 Information:Compilation completed with 11 errors and 0 warnings in 4 sec Information:11 errors Information:0 warnings /Users/angelo/AndroidStudioProjects/SigmaChiDerbyDaysProject/SigmaChiDerbyDays/src/main/java/com/sigmachi/derbydays/MainActivity.java Error:Error:line (28)Gradle: <identifier> expected Error:Error:line (28)Gradle: illegal start of type Error:Error:line (28)Gradle: ')' expected Error:Error:line (28)Gradle: ';' expected Error:Error:line (28)Gradle: invalid method declaration; return type required Error:Error:line (30)Gradle: illegal start of type Error:Error:line (30)Gradle: ';' expected Error:Error:line (30)Gradle: ')' expected Error:Error:line (30)Gradle: not a statement Error:Error:line (30)Gradle: ';' expected Error:Error:line (33)Gradle: illegal start of type 

Это ошибки, которые я получаю, что совершенно не имеет смысла. Строка 28 начинается, когда я делаю button.setOnClickListener

EDIT: теперь я нажимаю кнопку, когда я нажимаю кнопку

Это класс, который он должен открыть, класс с единственным изменением, являющимся макетом для открытия

 package com.sigmachi.derbydays; import android.os.Bundle; import android.app.Activity; import android.view.Menu; public class StandingsActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.standings_layout); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } } 

Solutions Collecting From Web of "OnClickListener в Android Studio"

 Button button= (Button) findViewById(R.id.standingsButton); button.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { startActivity(new Intent(MainActivity.this,StandingsActivity.class)); } }); 

Этот код не имеет никакого метода. Если вы хотите использовать его, он должен быть внутри метода, такого как OnCreate ()

 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button button= (Button) findViewById(R.id.standingsButton); button.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { startActivity(new Intent(MainActivity.this,StandingsActivity.class)); } }); } 

(Извините за отступ)

Вам нужно будет инициировать инициализацию внутри метода вместо того, чтобы пытаться инициализировать View на уровне класса, сделайте это как:

  Button button; //<< declare here.. @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button= (Button) findViewById(R.id.standingsButton); //<< initialize here // set OnClickListener for Button here button.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { startActivity(new Intent(MainActivity.this,StandingsActivity.class)); } }); } 
 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_my); titolorecuperato = (TextView) findViewById(R.id.textView); String stitolo = titolorecuperato.getText().toString(); Button btnHome = (Button) findViewById(R.id.button); btnHome.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { } }); 

То же самое, что и Nic007.

Вам нужно написать код внутри метода onCreate. Извините меня тоже за отступ … (первый комментарий здесь)

Это сработало для меня:

 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_newarea); btnSave = (Button)findViewById(R.id.btnSave); OnClickListener btnListener = new OnClickListener() { @Override public void onClick(android.view.View view) { finish(); } }; btnSave.setOnClickListener(btnListener); } 
 @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { int id = item.getItemId(); if (id == R.id.standingsButton) { startActivity(new Intent(MainActivity.this,StandingsActivity.class)); return true; } return super.onOptionsItemSelected(item); }