java - 如何使用 EditText 和 RadioButtons(以及颜色集)顺利存储用户输入数据?

标签 java android onclicklistener

我想将 RadioButton 的数据以及 EditText 值存储在 User 属性 registeredData 中,但我不知道如何访问我的函数以一种允许我获取所有数据以及显示单选按钮颜色变化的方式。另外,如何检查输入数据是否已在使用(例如电子邮件)?

我尝试将它们拆分为两个不同的函数,但无法将它们的数据返回到我的 User 属性 registeredData 中。这是我第一次尝试编写应用程序,因此非常感谢您的帮助。

public class Registration extends AppCompatActivity {

    private EditText displayname, email, password, confirmpassword;
    private Button bsubmit;
    private RadioGroup rgroup;

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

        displayname = findViewById(R.id.displayname);
        email = findViewById(R.id.useremail);
        password = findViewById(R.id.password);
        confirmpassword = findViewById(R.id.confirmpassword);
        bsubmit = findViewById(R.id.bsubmit);
        rgroup = findViewById(R.id.rgroupteams);

        bsubmit.setOnClickListener(onRegister);
    }

    private View.OnClickListener onRegister = new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            final User registeredData;
            registeredData = new User();

            switch (v.getId()) {
                case R.id.bsubmit:
                    String useremail = email.getText().toString();
                    String userdisplayname = displayname.getText().toString();
                    String userpassword = password.getText().toString();

                    registeredData.email = useremail;
                    registeredData.displayname = userdisplayname;
                    registeredData.password = userpassword;
                case R.id.rgroupteams:
                    RadioGroup group = findViewById(R.id.rgroupteams);
                    group.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
                        @Override
                        public void onCheckedChanged(RadioGroup group, int idOfSelected) {
                            switch (idOfSelected) {
                                case R.id.rbtnmantis:
                                    bsubmit.setBackgroundColor(Color.parseColor("#FF0000"));
                                    bsubmit.setTextColor(Color.parseColor("#000000"));
                                    registeredData.team = "Mantis";
                                    break;
                                case R.id.rbtlightbringers:
                                    bsubmit.setBackgroundColor(Color.parseColor("#F4DC00"));
                                    bsubmit.setTextColor(Color.parseColor("#000000"));
                                    registeredData.team = "LightBringers";
                                    break;
                                case R.id.rbtncryptographers:
                                    bsubmit.setBackgroundColor(Color.parseColor("#1C00AA"));
                                    bsubmit.setTextColor(Color.parseColor("#FFFFFF"));
                                    registeredData.team = "Cryptographers";
                                    break;
                                default:
                                    registeredData.team = "";
                            }
                        }
                    });
            }
        }
    };
} 

现在,颜色更改仅在我单击提交按钮后才会打开,因为我不知道如何更好地设置我的 setOnClickListener(),我还没有使用任何除此之外,registeredData 中的变量是否设置为能够访问以显示某些数据(如显示名称)?

最佳答案

您需要将 onCheckedChangeListener 移至 onClickListener 之外。另外,将 registeredData 移到 onClickListener 之外。确保注册数据可“全局”访问。然后,在单击按钮和检查监听器时,您可以将输入字段和复选框中的数据设置到对象。

其次,使用 TextUtils.isEmpty(email.getText().toString()) 如果电子邮件为空,您可以获得 boolean 值。您可以将其用于其他输入字段,只需将文本发送到 isEmpty 方法

关于java - 如何使用 EditText 和 RadioButtons(以及颜色集)顺利存储用户输入数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57137049/

相关文章:

android - android中的webview主机应用程序

android - 自定义 ListView 适配器上的 OnclickListener

android - 通过点击 map 获取坐标(openstreetmaps)

android - 如何在android中的 View 下获取 View 的点击事件

java - 将数组减半,填充它,然后重新减半

android - 如何停止刷新 viewpager 内容?

java - 线程中的异常 "main"java.io.FileNotFoundException Java

java - Android 模拟器存在首选项 Activity 问题

java - 无法将 Theme.Holo 用于我的第一个 Android 应用程序的样式

java - CDI 和 HttpRequest