2016-12-12 3 views
-4

Я использую андроид-студию, и я начинаю.so, пожалуйста, помогите мне разрешить ошибки. Фактически я получаю ошибку в OnClickListener. вот мой код.пожалуйста, помогите мне.Получение ошибки в OnClickListener

import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.TextView; 


public class MainActivity extends AppCompatActivity { 

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

    Button button = (Button) findViewById(R.id.button); 

    button.setOnClickListener(new View.onClickListener() { 

     @Override 

     public void onClick(View v) { 

      goToMain2Activity(); 

     } 
    }); 
} 
private void goToMain2Activity() { 
    Intent intent = new Intent(this, Main2Activity.class); 

    startActivity(intent); 
} 

}

+0

Какие ошибки вы получаете? Вы зарегистрировали Main2Activity в AndroidManifest? –

+0

Целевое намерение = новое намерение (MainActivity.this, Main2Activity.class); –

+3

Вы не можете объявлять методы внутри других методов, переместите 'goToMain2Activity()' из 'onCreate()'. – Egor

ответ

0

Вы можете сделать это, как этот

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

    Button button = (Button) findViewById(R.id.button); 

    final Intent i = new Intent(this, Main2Activity.class); 
    button.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      startActivity(i); 
     } 
    }); 


} 

или, если вы, как собственный метод лучше сделать это:

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

    Button button = (Button) findViewById(R.id.button); 


    button.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      goToMain2Activity(); 
     } 



    }); 

} 

private void goToMain2Activity() { 
    startActivity(new Intent(this, Main2Activity.class)); 
}