Member 13053943 Ответов: 3

Проверка регистрации пользователя


Как я могу проверить, когда пользователь хочет зарегистрироваться в моем приложении, я пробовал разные способы, но все равно Регистрация выполняется, даже если никаких подробностей не указано.Я хочу установить ошибки при щелчке до того, как детали будут вставлены в базу данных

Что я уже пробовал:

public class Register extends AppCompatActivity {

    EditText name1, etpolicyNumber, etPassword;
    Button bRegister;
    private AwesomeValidation awesomeValidation;

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

        awesomeValidation = new AwesomeValidation(ValidationStyle.BASIC);

        name1 = (EditText) findViewById(R.id.name);
        etpolicyNumber = (EditText) findViewById(R.id.policy_number1);
        etPassword = (EditText) findViewById(R.id.password1);
        bRegister = (Button) findViewById(R.id.btnregister);

        awesomeValidation.addValidation(this, R.id.name, "^[A-Za-z\\s]{1,}[\\.]{0,1}[A-Za-z\\s]{0,}$", R.string.nameerror);
        awesomeValidation.addValidation(this, R.id.policy_number1, "^[A-Za-z\\s]{1,}[\\.]{0,1}[A-Za-z\\s]{0,}$",R.string.policynumbererror);
        awesomeValidation.addValidation(this, R.id.password1, "^[A-Za-z\\s]{1,}[\\.]{0,1}[A-Za-z\\s]{0,}$", R.string.passworderror);



        bRegister.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String name = name1.getText().toString();
                String policyNumber = etpolicyNumber.getText().toString();
                String password = etPassword.getText().toString();
Response.Listener<String> responseListener = new Response.Listener<String>() {
                    @Override
                    public void onResponse(String response) {
                        try {
                            JSONObject jsonResponse = new JSONObject(response);
                            boolean success = jsonResponse.getBoolean("success");
                            if (success) {

                                Intent intent = new Intent(Register.this, MainActivity.class);
                                startActivity(intent);
                                Toast.makeText(Register.this, "Registration Successful", Toast.LENGTH_SHORT).show();
                            } else {
                                AlertDialog.Builder builder = new AlertDialog.Builder(Register.this);
                                builder.setMessage("Register Failed")
                                        .setNegativeButton("Retry", null)
                                        .create()
                                        .show();

                            }
                        } catch (JSONException e) {
                            e.printStackTrace();
                        }
                    }
                };

                RegisterRequest registerRequest = new RegisterRequest(name, policyNumber, password, responseListener);
                RequestQueue queue = Volley.newRequestQueue(Register.this);
                queue.add(registerRequest);



            }
        });



    }
}

ZurdoDev

Отладьте свой код.

3 Ответов

Рейтинг:
25

David Crow

Initially disable the Register button.  Only enable it after the Name, Policy Number, and Password fields are filled in (and validated).


Member 13053943

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

David Crow

Вы можете сделать это в коде, но я бы изначально отключил его в XML-файле макета.

Рейтинг:
1

Member 13053943

Я отключаю кнопку входа и регистрации, если только значения не заданы в полях до того, как вы сможете отправить...я использовал текстовый наблюдатель, так что я думаю, что до сих пор это было хорошо.если вы являетесь пользователем и предоставляете неверную информацию,это будет вашей проблемой,потому что система-это габаж в габаже..если вы наберете John как Jonh,он будет принят системой...система знает, какое имя неверно..спасибо за Вашу поддержку...проверка ошибок была установлена в php и android


Рейтинг:
0

VISWESWARAN1998

Если я правильно понял ваш вопрос
Я бы лично это сделал,

Прежде всего я получу пользовательский ввод в строку

String example = editText.getText().toString().trim()
// and validate it
if(example.equals("") // If the input is nothing
{
   editText.setError("Your error message"); // or editText.setError(getString(R.string.errorMessage));
}

else
{
// Proceed registration
}


Добавьте это в свой OnClickListener()для кнопки


David Crow

Лично меня особенно раздражает, когда мне разрешают нажать кнопку (ОК) при возникновении ошибки; это нарушает основные принципы хорошего дизайна графического интерфейса. Другими словами, Не позволяйте пользователю иметь доступ к чему-то, а затем жаловаться, когда он злоупотребляет этим.

[no name]

Сэр, у меня есть сомнения, сэр - если у нас есть длинная форма и отключена кнопка "OK\SUBMIT" и разрешена только тогда, когда полная форма заполнена правильно, если пользователь случайно пропустит что-то, что ему нужно просмотреть всю форму, так как кнопка OK не включена, это еще больше раздражает, так как пользователь может не найти ошибку навсегда и никогда не будет использовать приложение. Я использовал различные приложения, и ни одно из них не отключило такие кнопки, как login, submit и т. д., Все они являются механизмами отображения ошибок.

Что нужно сделать в этом случае?

Спасибо за ваше время сэр

David Crow

Если у вас есть "длинная форма" и "пользователь не может найти ошибку навсегда", я бы сказал, что это проблема дизайна. Вы не должны пытаться уместить всю работу или заявку на кредит в одну форму, например. Разбейте его на более мелкие, более управляемые части, которые можно контролировать.

Имея дело с продуктами Microsoft в течение последних трех десятилетий, я выработал несколько пресыщенный взгляд на сообщения: 1) они не должны вызывать больше путаницы, чем проблема, которая на самом деле их подняла, и 2) они должны либо быть решением, либо указывать мне направление решения. Я чувствую, что наличие целого множества сообщений "Вы не вошли в xyz" сбивает с толку, раздражает и не нужно.