Передача данных из Edit Text в Java Object, - PullRequest
2 голосов
/ 30 мая 2019

Я пытаюсь зарегистрировать пользователей с помощью SQLLite 3, и мне нужна помощь в получении информации из EditText для объекта пользователя, а затем в регистрации пользователей.

Я пробовал это:

        private EditText inputLastname;
        private EditText inputEmail;
        private EditText inputPassword;
        private EditText inputCity;
        private EditText inputPhone;
        register_btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                try {
                    User user = new User();
                    user.setFirstname(inputFirstname.getText().toString());
                    user.setLastname(inputLastname.getText().toString());
                    user.setEmail(inputEmail.getText().toString());
                    user.setPassword(inputPassword.getText().toString());
                    user.setPhone(Integer.parseInt(inputPhone.getText().toString()));
                    user.setCity(inputCity.getText().toString());

                    if (user != null) {

                        Log.d("message", user.toString().trim());// check if user is populated
                        databaseManager.createUser(user);// create user method
                        Toast toast =
                                Toast.makeText(getApplicationContext(), user.toString().trim(), Toast.LENGTH_LONG);
                        toast.setMargin(50, 50);
                        toast.show();
                        Intent intent = new Intent(getApplicationContext(), login.class);
                        startActivity(intent);
                    }
                } catch (Exception ex) {
                    Toast.makeText(register.this, "Registration Failed", Toast.LENGTH_SHORT).show();
                    System.out.print(ex.toString());
                }
            }
        });

Кто-нибудь знает лучший / рабочий способ сделать это?

1 Ответ

1 голос
/ 30 мая 2019

Похоже, вам не хватает инициализации, указывающей переменные EditText на виджеты в макете. Вы должны сделать это в вашем методе onCreate. Как только вы это сделаете, вы можете использовать getText().toString() для этих переменных, чтобы получить строки.

Например

    private EditText inputLastname;
    private EditText inputEmail;
    private EditText inputPassword;
    private EditText inputCity;
    private EditText inputPhone;

@Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        View view = inflater.inflate(R.layout.fragment_groups, container, false);

        // Do this for every view
        inputEmail = view.findViewById(R.id.email_edit_text_id);
        ...

        return view;
    }

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...