startActivity в onclick

есть простая активность с методом onClick - она ​​работает, но Android Studio помечает startActivity красным, говорит, что не может разрешить метод - так почему?

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

public void onClick(View v) {
    switch (v.getId()) {

        case R.id.btn1:

            Intent int_Update = new Intent(v.getContext(), aty_Update.class);

            startActivity(int_Update);

            break;

        case R.id.btn2:

            Intent int_Start = new Intent(v.getContext(), aty_Main.class);
            startActivity(int_Start);

            break;
    }
}

person Chad White    schedule 08.07.2016    source источник
comment
Просто чтобы убедиться, что этот класс extends Activity?   -  person codeMagic    schedule 08.07.2016
comment
если startActivity подчеркнут красным, это означает, что ваш проект неправильно настроен или построен неправильно. с кодом все в порядке. Попробуйте выполнить синхронизацию Gradle, и я уверен, она покажет вам некоторые ошибки или что-то в этом роде.   -  person Tomer Shemesh    schedule 08.07.2016
comment
Эй, ты мой человек - ты прав - после этого ... все ошибки исчезли - это магия - нет ист Шемеш ;))   -  person Chad White    schedule 08.07.2016


Ответы (2)


Не используйте v.getContext(), используйте:

Intent int_Update = new Intent(this, aty_Update.class);

Или MyActivity.this вместо этого.

Кроме того, вы неправильно устанавливаете onClickListener. Взгляните на эту ссылку, чтобы узнать, как это сделать правильно.

person Vucko    schedule 08.07.2016
comment
Я делал это раньше, но Studio помечает его красным - ошибка не может разрешить конструктор - person Chad White; 08.07.2016
comment
ты использовал getApplicationContext() - person Sahaj Rana; 08.07.2016
comment
›Или вместо этого MyActivity.this.‹ просто замените на название вашей деятельности. - person Vucko; 08.07.2016
comment
Вы заменили MyActivity названием своей деятельности? Чувак, ты изменил способ реализации onClick? Ваш путь неправильный. - person Vucko; 08.07.2016
comment
конечно заменил - person Chad White; 08.07.2016
comment
использовал его, как здесь - person Chad White; 08.07.2016

Используйте следующий код:

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

public void onClick(View v) {
    switch (v.getId()) {

        case R.id.btn1:

            activityStarter(aty_Update.class);

            break;

        case R.id.btn2:

            activityStarter(aty_Main.class);

            break;
}


       Intent int_Update;

public void activityStarter(Class<?> cls){
        int_Update = new Intent(getApplicationContext(), cls);
        startActivity(int_Update);
    }
person Saini    schedule 08.07.2016
comment
приложение для начинающих Inventor? - person Chad White; 08.07.2016
comment
какую ошибку он показывает в приложении и студии Android - person Saini; 09.07.2016