gpt4 book ai didi

java - 将复选框值存储到 Firebase 数据库

转载 作者:行者123 更新时间:2023-11-29 22:53:13 25 4
gpt4 key购买 nike

我正在制作一个应用程序,我需要注册用户。我还有两个复选框,用户可以在其中选择性别(男性或女性)。我知道复选框理解 boolean 值 true 或 false,但我想知道如何使用 firebase 做到这一点。这正是我需要做的: image

这是我所做的:

private void SignUp(final String firstName, final String lastName, final String email, final String password, final String checkMale, final String checkFemale) {
mAuth.createUserWithEmailAndPassword(email, password).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if(task.isSuccessful()) {
FirebaseUser user = mAuth.getCurrentUser();
assert user != null;
String userId =user.getUid();

reference = FirebaseDatabase.getInstance().getReference().child("Users").child(userId);
HashMap<String, Object> hashMap = new HashMap<>();
hashMap.put("id", userId);
hashMap.put("firstName", firstName);
hashMap.put("lastName", lastName);
hashMap.put("email", email.toLowerCase());
if(male.isChecked() && female.isChecked()) {
hashMap.put("male", checkMale);
hashMap.put("female", checkFemale);
}
reference.setValue(hashMap).addOnCompleteListener(new OnCompleteListener<Void>() {

@Override
public void onComplete(@NonNull Task<Void> task) {
if(task.isSuccessful()) {
pd.dismiss();
Intent intent = new Intent(RegisterActivity.this, MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
Toast.makeText(RegisterActivity.this, "User Registered successfully", Toast.LENGTH_SHORT).show();
}
}
});
} else {
pd.dismiss();
Toast.makeText(RegisterActivity.this, "You can't register with this email or password", Toast.LENGTH_SHORT).show();
}
}
});
}

感谢任何帮助。

最佳答案

您可以使用 Radio Buttons 而不是复选框。

<RadioGroup xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<RadioButton android:id="@+id/malleButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Male"
android:onClick="onRadioButtonClicked"/>
<RadioButton android:id="@+id/femaleButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Female"
android:onClick="onRadioButtonClicked"/>
</RadioGroup>

在代码中,您可以检查选择了哪个。

public void onRadioButtonClicked(View view) {
// Is the button now checked?
boolean checked = ((RadioButton) view).isChecked();

// Check which radio button was clicked
switch(view.getId()) {
case R.id.maleButton:
if (checked)
hashMap.put("male", true);
break;
case R.id.femaleButton:
if (checked)
hashMap.put("male", false);
break;
}
}

此外,如果用户只能选择一个,则无需在 firebase male 和 female 中存储 2 个变量。在其他情况下(如果用户可以选择两者)存储 2 个变量并删除 radiogroup 以便用户可以选择两者。

关于java - 将复选框值存储到 Firebase 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57704747/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com