android - 如何在我的 Android Studio 项目中单击登录表单中的按钮
问题描述
我是安卓初学者。我尝试了很多来找到这个错误,但我没有得到满意的答案。在我的程序中,我创建了一个登录和注册页面并连接到 Firebase。但由于我无法单击按钮,我无法注册用户。
当我单击按钮时,它什么也不做。甚至我将另一个按钮链接到一个也不起作用的登录页面。
private EditText inputEmail, inputPassword;
private Button btnSignIn, btnSignUp;
private ProgressBar progressBar;
private FirebaseAuth auth;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_loginreg);
auth = FirebaseAuth.getInstance();
btnSignIn = (Button) findViewById(R.id.lo);//This is sign in button
btnSignUp = (Button) findViewById(R.id.register_btn);//This is the sign up button
inputEmail = (EditText) findViewById(R.id.email);
inputPassword = (EditText) findViewById(R.id.password);
progressBar = (ProgressBar) findViewById(R.id.progressbar);
btnSignIn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
btnSignUp.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String email = inputEmail.getText().toString().trim();
String password = inputPassword.getText().toString().trim();
if (TextUtils.isEmpty(email)) {
Toast.makeText(getApplicationContext(), "Enter email address!", Toast.LENGTH_SHORT).show();
return;
}
if (TextUtils.isEmpty(password)) {
Toast.makeText(getApplicationContext(), "Enter password!", Toast.LENGTH_SHORT).show();
return;
}
if (password.length() < 6) {
Toast.makeText(getApplicationContext(), "Password too short, enter minimum 6 characters!", Toast.LENGTH_SHORT).show();
return;
}
progressBar.setVisibility(View.VISIBLE);
//create user
auth.createUserWithEmailAndPassword(email, password)
.addOnCompleteListener(loginreg.this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
Toast.makeText(loginreg.this, "createUserWithEmail:onComplete:" + task.isSuccessful(), Toast.LENGTH_SHORT).show();
progressBar.setVisibility(View.GONE);
// If sign in fails, display a message to the user. If sign in succeeds
// the auth state listener will be notified and logic to handle the
// signed in user can be handled in the listener.
if (!task.isSuccessful()) {
Toast.makeText(loginreg.this, "Authentication failed." + task.getException(),
Toast.LENGTH_SHORT).show();
} else {
startActivity(new Intent(loginreg.this, activity_second.class));
finish()
}
}
});
}
});
}
@Override
protected void onResume() {
super.onResume();
progressBar.setVisibility(View.GONE);
}
这是我的 XML 代码:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
android:background="@color/colorPrimary"
tools:context=".loginreg">
<EditText
android:id="@+id/name"
android:layout_width="357dp"
android:layout_height="36dp"
android:layout_above="@+id/password"
android:layout_centerHorizontal="true"
android:layout_marginStart="24dp"
android:layout_marginEnd="24dp"
android:layout_marginBottom="62dp"
android:background="@drawable/usr"
android:gravity="center_vertical"
android:hint="Email"
android:inputType="textEmailAddress"
android:selectAllOnFocus="true"
android:textAlignment="center"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="RtlCompat" />
<EditText
android:id="@+id/username"
android:layout_width="357dp"
android:layout_height="36dp"
android:layout_above="@+id/password"
android:layout_centerHorizontal="true"
android:layout_marginStart="24dp"
android:layout_marginEnd="24dp"
android:layout_marginBottom="11dp"
android:background="@drawable/usr"
android:gravity="center_vertical"
android:hint="Password"
android:inputType="textEmailAddress"
android:selectAllOnFocus="true"
android:textAlignment="center"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="RtlCompat" />
<EditText
android:id="@+id/password"
android:layout_width="357dp"
android:layout_height="36dp"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginStart="24dp"
android:layout_marginEnd="24dp"
android:layout_marginBottom="256dp"
android:background="@drawable/usr"
android:gravity="center_vertical"
android:hint="Conform Password"
android:imeActionLabel="@string/action_sign_in_short"
android:imeOptions="actionDone"
android:inputType="textPassword"
android:selectAllOnFocus="true"
android:textAlignment="center"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/username"
tools:ignore="RtlCompat" />
<Button
android:id="@+id/register_btn"
android:layout_width="112dp"
android:layout_height="63dp"
android:layout_alignTop="@+id/name"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_gravity="start"
android:layout_marginTop="236dp"
android:layout_marginBottom="107dp"
android:background="@drawable/round"
android:enabled="false"
android:text="Register"
android:textAllCaps="false"
android:textColor="@android:color/black"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/password"
app:layout_constraintVertical_bias="0.2" />
<Button
android:id="@+id/lo"
android:layout_width="363dp"
android:layout_height="51dp"
android:layout_alignTop="@+id/username"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_gravity="start"
android:layout_marginTop="290dp"
android:layout_marginBottom="14dp"
android:background="@drawable/round"
android:enabled="false"
android:text="Login"
android:textAllCaps="false"
android:textColor="@android:color/black"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/password"
app:layout_constraintVertical_bias="0.2" />
<ImageView
android:id="@+id/imageView3"
android:layout_width="164dp"
android:layout_height="476dp"
android:layout_alignParentStart="true"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginStart="129dp"
android:layout_marginLeft="129dp"
android:layout_marginTop="-170dp"
app:srcCompat="@drawable/film_1" />
<ProgressBar
android:id="@+id/progressbar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true" />
<TextView
android:id="@+id/textView8"
android:layout_width="162dp"
android:layout_height="64dp"
android:layout_above="@+id/name"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="171dp"
android:layout_marginBottom="90dp"
android:text="Register"
android:textColor="@android:color/white"
android:textSize="40dp" />
</RelativeLayout>
解决方案
您缺少android:onClick="yourmethod"
xml 文件<Button>
标记中的 。并将其设置android:enabled="false"
为 true 或将其删除。
更新
在活动中,您可以拥有onClick
:
btnSignUp.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
yourMethod(v);
}
});
推荐阅读
- mysql - 当键可用时,MySQL 查询全表扫描
- c# - 在同一解决方案中从 c# 项目到 c++ 项目的 DllImport
- sql - Microsoft Azure - 没有 SQL 数据仓库
- yacc - 为什么这个 yacc 代码会产生移位/减少冲突
- python - 使用python从beautifulsoup在同一行打印2个跨度的特定文本
- java - 在 Android 10 java 中销毁应用程序后 20 秒后后台服务停止
- php - 如何使用 Google Drive Api v3 和 php 显示文本文件的内容?
- html - 具有固定页眉和页脚的 html/css 网格布局
- winapi - 以编程方式更改 Windows 每显示器缩放设置
- typescript - 打字稿:删除函数属性,同时保持可调用