не могу проверить радио-кнопку в Android Studio Вход / Регистрация приложения - PullRequest
0 голосов
/ 14 сентября 2018

каждый раз, когда я нажимаю кнопку регистрации, оно закрывает приложение, и когда я удаляю переключатель из условия if и заставляю одну из переключателей проверяться в xml при запуске активности, она работает нормально, это код


 // get selected radio button from radioGroup
                  int selectedId = radioGroup.getCheckedRadioButtonId();

              // find the radiobutton by returned id
              radioButton = (RadioButton) findViewById(selectedId);

              String Gender = radioButton.getText().toString();

              if (fName.isEmpty() && lName.isEmpty() && eUsername.isEmpty() && ePassword.isEmpty() && radioGroup.getCheckedRadioButtonId() < 0) {
                  return;
              }

              else if (fName.isEmpty() || lName.isEmpty() || eUsername.isEmpty() || ePassword.isEmpty() || radioGroup.getCheckedRadioButtonId() < 0) {
                  Snackbar.make(view, "Please enter your full data", Snackbar.LENGTH_LONG)
                          .setAction("Action", null).show();
              }


              else {
                  //********************************************************************************
                  if(Objects.equals(password.getText().toString(),RPTpassword.getText().toString())) {

Я перепробовал слишком много решений, чтобы инициализировать две радиокнопки и выполнить условие


if (fName.isEmpty() && lName.isEmpty() && eUsername.isEmpty() && ePassword.isEmpty() && !radioButton1.isChecked() && !radioButton2.isChecked()) {
                      return;
                  }

и та же проблема и пробовал


if (fName.isEmpty() && lName.isEmpty() && eUsername.isEmpty() && ePassword.isEmpty() && Gender != "Male" && Gender != "Female") {
                          return;
                      }

и ничего не закрывается каждый раз, когда я нажимаю регистр

ошибка


 AndroidRuntime: FATAL EXCEPTION: main
                      Process: com.android.loginregister, PID: 3713
                      java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.CharSequence android.widget.TextView.getText()' on a null object reference
                          at com.android.loginregister.RegisterActivity$2.onClick(RegisterActivity.java:131)
                          at android.view.View.performClick(View.java:5610)
                          at android.view.View$PerformClick.run(View.java:22265)
                          at android.os.Handler.handleCallback(Handler.java:751)
                          at android.os.Handler.dispatchMessage(Handler.java:95)
                          at android.os.Looper.loop(Looper.java:154)
                          at android.app.ActivityThread.main(ActivityThread.java:6077)
                          at java.lang.reflect.Method.invoke(Native Method)
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865)
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)

<RadioGroup
            android:id="@+id/rdioGroup"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:layout_marginTop="25dp"
            android:layout_below="@id/RePassword">

            <RadioButton
                android:text="Male"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/radioButton3"
                android:layout_weight="1"
                android:layout_gravity="bottom"
                android:textAllCaps="false"
                android:textColor="#FFFFFF"
                android:buttonTint="#FFFFFF"
                android:textSize="14sp"
                android:textColorLink="#e8d829"
                android:focusableInTouchMode="false"
                android:checked="false" />

            <RadioButton
                android:text="Female"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/radioButton2"
                android:layout_weight="1"
                android:layout_gravity="bottom"
                android:textAllCaps="false"
                android:textColor="#FFFFFF"
                android:buttonTint="#FFFFFF"
                android:textSize="14sp"
                android:textColorLink="#2362e0" />

        </RadioGroup>

1 Ответ

0 голосов
/ 14 сентября 2018

Эта строка неверна.

 radioButton = (RadioButton) findViewById(selectedId);

Идентификатор должен быть одинаковым в ваших атрибутах xml radioButton.

В вашем случае вам следует инициализировать две переключателикак это

radioBtn2 = (RadioButton)findViewById(R.id.radioButton2);
radioBtn3 = (RadioButton)findViewById(R.id.radioButton3);

И так как вы хотите получить текст из двух radioButtons, вы должны объявить две строки.

String gender1 = radioBtn2.getText().toString();
String gender2 = radioBtn3.getText().toString();

И, наконец,

  if (fName.isEmpty() && lName.isEmpty() && eUsername.isEmpty() && ePassword.isEmpty() && gender1 != "Male" && gender2 != "Female") {
     return;
   }

Чтобы сравнить String, мы должны использовать .equals().Для не равных это должно быть

if (!gender1.equals("Male")) {
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...