Как начать вторую активность в Android? получение ошибки

У меня есть два java файла. В первом у меня есть моя активность, которая начинается с момента запуска приложения. Второй называется "AuswahlActivity.java" и xml файл "auswahl.xml". У меня есть этот код в AuswahlActivity.java:

 public class AuswahlActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        setContentView(R.layout.auswahl);
        //Your code here
    }
}

Теперь я хочу начать такую ​​деятельность следующим образом:

Intent myIntent = new Intent(this, AuswahlActivity.class);
this.startActivity(myIntent);

Но я получаю сообщение об ошибке The constructor Intent(new View.OnClickListener(){}, Class<AuswahlActivity>) is undefined

Как мне заставить это работать?

Ответ 1

Intent myIntent = new Intent(this, AuswahlActivity.class);    
this.startActivity(myIntent); 

Эта часть вашего кода возможна внутри OnClickListener, просто используйте

Intent myIntent = new Intent(YouCurrentActivity.this, AuswahlActivity.class);
YouCurrentActivity.this.startActivity(myIntent); 

Причина в том, что в анонимном классе (ваш OnClickListener) this ссылается на Onclicklistener, а не на активность... Первый параметр для Intent - это контекст (который должен быть активным), следовательно, ошибка.

Ответ 2

Я предполагаю, что вы пытаетесь запустить свою новую деятельность внутри OnClickListener. Вот почему это относится к OnClickListener не к активности. И поэтому невозможно найти соответствующий конструктор.

Поэтому вы должны использовать

Intent myIntent = new Intent(TheCurrentActivity.this, AuswahlActivity.class);

вместо

Ответ 3

Вы также записывали активность в файл манифеста ?

Ответ 4

Я предполагаю, что строка:

Intent myIntent = new Intent(this, AuswahlActivity.class);

происходит в OnClickListener, который является анонимным внутренним классом вашей основной деятельности. Просто префикс this с именем класса активности.

Ответ 5

Используйте его таким образом

Intent myIntent = new Intent(CallerActivity.this, AuswahlActivity.class);
CallerActivity.this.startActivity(myIntent);

Где CallerActivity - имя вашего первого действия. Android бросает эту ошибку, потому что вы можете ее вызывать из какого-то внутреннего класса.