Изменение активности Android Studio - намеренная ошибка - PullRequest
0 голосов
/ 13 марта 2019

Я пытаюсь связать действия с нажатием кнопки. Я получаю сообщение об ошибке «ChangeActivityStudent () в MainActivity нельзя применить к (Androi.content.intent)»

Вот мой код:

public class MainActivity extends AppCompatActivity  implements View.OnClickListener {

    EditText userPassword;
    EditText userPin;
    EditText UserName;
    CheckBox checkBox;
    TextView Title;
    Button GoBtn;

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

        UserName = findViewById(R.id.UserName);
        userPassword = findViewById(R.id.userPassword);
        userPin = findViewById(R.id.userPin);
        checkBox = findViewById(R.id.checkBox);
        GoBtn = findViewById(R.id.GoBtn);


        checkBox.setOnClickListener(this);
        // called when check box is clicked

    }

    @Override
    public void onClick(View v) {
        //method called
        if (checkBox.isChecked())
        {
            userPin.setVisibility(View.VISIBLE);
            //when checkbox is check, userPin becomes visible
        }
        else
        {
            userPin.setVisibility(View.INVISIBLE);
            //otherwise userPin is invisible
        }

        GoBtn.setOnClickListener(new View.OnClickListener() {
            @Override
           public void onClick(View v) {
               ChangeActivityStudent();
            }
        });
    }

    private void ChangeActivityStudent(){
       Intent intent = new Intent(this, StudentActivity.class);
       ChangeActivityStudent(intent);
    }
}

Ответы [ 2 ]

1 голос
/ 13 марта 2019

В Android, чтобы начать новое действие, вы не вызываете его конструктор напрямую.Это делается с помощью платформы Android.Вместо этого вы используете context.startActivity(intent) (документы для этого здесь ).Так что в этом случае:

private void changeActivityStudent() {
    Intent intent = new Intent(this, StudentActivity.class); 
    startActivity(intent); 
}

Поскольку вы звоните по номеру MainActivity, который расширяет Context, вы можете вызвать его напрямую.Проверьте этот учебник для получения дополнительной информации о том, как начать новый вид деятельности.

0 голосов
/ 13 марта 2019

Это должно работать:

private void ChangeActivityStudent(){
       Intent intent = new Intent(MainActivity.this, StudentActivity.class);
       startActivity(intent);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...