Android Кнопка Studio onClick Listener не будет работать - PullRequest
0 голосов
/ 03 мая 2020

Итак, я пытался реализовать кнопку «Моя активность Register», которая переключается на другую «LoginActivity». AndroidStudio предлагает этот действительно хороший Менеджер, где я могу просто заставить Button реагировать на письменный метод.

onClick-Button onClick-Button

Почему моя Кнопка не реагирует ?

Если я использую этот фрагмент кода, Button работает, даже если я не добавляю метод в атрибут onClick для Button:

Button signUpButton = (Button) findViewById(R.id.signUpButton);
    signUpButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            RegisterActivity.this.switchToLoginPage();
        }
    });

public void switchToLoginPage() {
    Intent goToLoginPage = new Intent(getApplicationContext(), LoginActivity.class);
    startActivity(goToLoginPage);
}

Но если я использую этот, также добавляя метод к атрибуту onClick для кнопки, он не будет работать:

    public void switchToLoginActivity(View view) {
        startActivity(new Intent(RegisterActivity.this, LoginActivity.class));
}

Я даже проверил. xml файлы дважды и трижды:

<Button
        android:id="@+id/signUpButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="switchToLoginActivity"
        android:text="@string/sign_up_button"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/passwordTextField"
        app:layout_constraintVertical_bias="0.5" />

Может кто-нибудь помочь?

Ответы [ 2 ]

0 голосов
/ 03 мая 2020

Вы устанавливаете onClick слушатель для signUpButton два раза, один в java код:

signUpButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        RegisterActivity.this.switchToLoginPage();
    }
});

А также в XML:

android:onClick="switchToLoginActivity"

Когда вы делаете что в XML метод switchToLoginActivity вызывается при нажатии кнопки.

Вам следует либо удалить clickListener, который вы устанавливаете с помощью setOnClickListener в java коде, либо удалить android:onClick="switchToLoginActivity" и switchToLoginActivity метод.

0 голосов
/ 03 мая 2020

Удалите этот кусок кода:

signUpButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        RegisterActivity.this.switchToLoginPage();
    }
});

И сохраните этот метод:

public void switchToLoginActivity(View view) {
    startActivity(new Intent(RegisterActivity.this, LoginActivity.class));
}

И посмотрите, что произойдет.

...