首页 > 解决方案 > 安卓按钮无响应

问题描述

我正在尝试使用 firebase 创建一个登录应用程序,但我在注册方面和设计方面遇到了问题。当我构建和运行我的应用程序时,它构建和启动都很好,但是当我在模拟器上使用该应用程序并单击注册按钮时,该按钮没有响应。我可以单击按钮,但未激活 onClickListener。

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_registration);
    setupUIViews();
    mAuth = FirebaseAuth.getInstance();
    sign.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (validate() ) {
                String user_email = email.getText().toString().trim();
                String user_Password = pass.getText().toString().trim();
                registerUser(user_email, user_Password);

            }
        }
    });
    already.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            startActivity(new Intent(Registration.this, Login.class));
        }
    });
}
public void registerUser(String x, String y){
    mAuth.createUserWithEmailAndPassword(x, y)
            .addOnCompleteListener(Registration.this, new OnCompleteListener<AuthResult>() {
                @Override
                public void onComplete(@NonNull Task<AuthResult> task) {
                    if (task.isSuccessful()) {
                        Toast.makeText(Registration.this, "Registration Complete", Toast.LENGTH_SHORT).show();
                        startActivity(new Intent(Registration.this, Login.class));
                    } else {
                        Toast.makeText(Registration.this, "Registration failed" + task.getException().getMessage(), Toast.LENGTH_SHORT).show();
                    }
                }
            });

}




        private void setupUIViews() {
            user = (EditText) findViewById(R.id.editText5);
            email = (EditText) findViewById(R.id.Email);
            pass = (EditText) findViewById(R.id.etPassword);
            phone = (EditText) findViewById(R.id.Pnumber);
            first = (EditText) findViewById(R.id.FirstName);
            last = (EditText) findViewById(R.id.LastName);
            sign = (Button) findViewById(R.id.button15);
            already = (TextView) findViewById(R.id.textView);

        }

        private Boolean validate(){
            Boolean result = false;

            String name = first.getText().toString();
            String email1 = email.getText().toString();
            String username = user.getText().toString();
            String lastt = last.getText().toString();
            String password = pass.getText().toString();
            String phone1 = phone.getText().toString();
            if (name.isEmpty() || email1.isEmpty() || lastt.isEmpty() ||
                    password.isEmpty() || phone1.isEmpty() || username.isEmpty()) {
                Toast.makeText(Registration.this, "Please Fill in all fields ", Toast.LENGTH_SHORT).show();
            } else {
                result = true;
            }
            return result;
        }
    }

当我将 google play 添加到我的模拟器时,这个问题就开始了。在此之前,我的登录按钮只会生成我嵌入到验证功能中的错误消息。签名按钮应该调用验证函数,然后在我的 firebase 应用程序中创建一个新用户。当我检查我的 logcat 时,我收到了这个错误:

17856-17889/com.example.habib.linx E/FirebaseInstanceId: Google Play services missing or without correct permission.

标签: androidfirebasegoogle-play-servicesandroid-button

解决方案


推荐阅读