为什么我的所有EditText.getText()。toString()返回一个空字符串?

胡赛法·侯赛因:

这个问题在整个应用程序中都会发生,但我只是发布我的注册活动。

这是我的注册活动的屏幕截图:

在此处输入图片说明

这是我的注册活动的xml。我认为您不需要阅读它。


    <?xml version="1.0" encoding="utf-8"?>
    <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#6633ff"
        tools:context=".RegisterActivity">

        <androidx.constraintlayout.widget.Guideline
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/left_guideline_edit_text"
            app:layout_constraintGuide_percent=".12077"
            android:orientation="vertical"/>

        <androidx.constraintlayout.widget.Guideline
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/right_guideline_edit_text"
            app:layout_constraintGuide_percent=".87923"
            android:orientation="vertical"/>

        <androidx.constraintlayout.widget.Guideline
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/top_guideline_edit_text_name"
            app:layout_constraintGuide_percent=".09821"
            android:orientation="horizontal"/>

        <androidx.constraintlayout.widget.Guideline
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/bottom_guideline_edit_text_name"
            app:layout_constraintGuide_percent=".17857"
            android:orientation="horizontal"/>

        <androidx.constraintlayout.widget.Guideline
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/top_guideline_edit_text_email"
            app:layout_constraintGuide_percent=".21429"
            android:orientation="horizontal"/>

        <androidx.constraintlayout.widget.Guideline
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/bottom_guideline_edit_text_email"
            app:layout_constraintGuide_percent=".29464"
            android:orientation="horizontal"/>

        <androidx.constraintlayout.widget.Guideline
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/top_guideline_edit_text_password"
            app:layout_constraintGuide_percent=".33036"
            android:orientation="horizontal"/>

        <androidx.constraintlayout.widget.Guideline
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/bottom_guideline_edit_text_password"
            app:layout_constraintGuide_percent=".41071"
            android:orientation="horizontal"/>

        <androidx.constraintlayout.widget.Guideline
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/top_guideline_edit_text_city"
            app:layout_constraintGuide_percent=".44420"
            android:orientation="horizontal"/>

        <androidx.constraintlayout.widget.Guideline
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/bottom_guideline_edit_text_city"
            app:layout_constraintGuide_percent=".52455"
            android:orientation="horizontal"/>

        <androidx.constraintlayout.widget.Guideline
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/top_guideline_edit_text_country"
            app:layout_constraintGuide_percent=".56027"
            android:orientation="horizontal"/>

        <androidx.constraintlayout.widget.Guideline
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/left_guideline_register_button"
            app:layout_constraintGuide_percent=".27536"
            android:orientation="vertical"/>

        <androidx.constraintlayout.widget.Guideline
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/right_guideline_register_button"
            app:layout_constraintGuide_percent=".72222"
            android:orientation="vertical"/>

        <androidx.constraintlayout.widget.Guideline
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/top_guideline_register_button"
            app:layout_constraintGuide_percent=".70313"
            android:orientation="horizontal"/>

        <androidx.constraintlayout.widget.Guideline
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/bottom_guideline_edit_text_country"
            app:layout_constraintGuide_percent=".64063"
            android:orientation="horizontal"/>

        <androidx.constraintlayout.widget.Guideline
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/bottom_guideline_register_button"
            app:layout_constraintGuide_percent=".78125"
            android:orientation="horizontal"/>

        <androidx.constraintlayout.widget.Guideline
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/top_guideline_edit_text_view_already_account"
            app:layout_constraintGuide_percent=".80692"
            android:orientation="horizontal"/>

        <androidx.constraintlayout.widget.Guideline
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/bottom_guideline_text_view_already_account"
            app:layout_constraintGuide_percent=".84933"
            android:orientation="horizontal"/>

        <androidx.constraintlayout.widget.Guideline
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/top_guideline_text_view_log_in"
            app:layout_constraintGuide_percent=".84933"
            android:orientation="horizontal"/>

        <androidx.constraintlayout.widget.Guideline
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/bottom_guideline_text_view_log_in"
            app:layout_constraintGuide_percent=".89174"
            android:orientation="horizontal"/>

        <EditText
            android:layout_width="0dp"
            android:layout_height="0dp"
            android:background="@drawable/edit_text_shape"
            android:id="@+id/edit_text_name"
            android:hint="Name"
            android:textColorHint="#bbbbbb"
            android:textColor="#000000"
            android:textSize="20sp"
            android:paddingStart="10dp"
            android:paddingEnd="10dp"
            android:inputType="textCapSentences"
            android:maxLines="1"
            android:imeOptions="actionNext"
            app:layout_constraintLeft_toLeftOf="@+id/left_guideline_edit_text"
            app:layout_constraintRight_toRightOf="@+id/right_guideline_edit_text"
            app:layout_constraintTop_toTopOf="@+id/top_guideline_edit_text_name"
            app:layout_constraintBottom_toBottomOf="@+id/bottom_guideline_edit_text_name"/>

        <EditText
            android:layout_width="0dp"
            android:layout_height="0dp"
            android:background="@drawable/edit_text_shape"
            android:id="@+id/edit_text_email"
            android:hint="Email"
            android:textColorHint="#bbbbbb"
            android:textColor="#000000"
            android:textSize="20sp"
            android:paddingStart="10dp"
            android:paddingEnd="10dp"
            android:inputType="textEmailAddress"
            android:maxLines="1"
            android:imeOptions="actionNext"
            app:layout_constraintLeft_toLeftOf="@+id/left_guideline_edit_text"
            app:layout_constraintRight_toRightOf="@+id/right_guideline_edit_text"
            app:layout_constraintTop_toTopOf="@+id/top_guideline_edit_text_email"
            app:layout_constraintBottom_toBottomOf="@+id/bottom_guideline_edit_text_email" />

        <EditText
            android:layout_width="0dp"
            android:layout_height="0dp"
            android:background="@drawable/edit_text_shape"
            android:id="@+id/edit_text_password"
            android:hint="Password"
            android:textColorHint="#bbbbbb"
            android:textColor="#000000"
            android:textSize="20sp"
            android:paddingStart="10dp"
            android:paddingEnd="10dp"
            android:inputType="textPassword"
            android:maxLines="1"
            android:imeOptions="actionNext"
            app:layout_constraintLeft_toLeftOf="@+id/left_guideline_edit_text"
            app:layout_constraintRight_toRightOf="@+id/right_guideline_edit_text"
            app:layout_constraintTop_toTopOf="@+id/top_guideline_edit_text_password"
            app:layout_constraintBottom_toBottomOf="@+id/bottom_guideline_edit_text_password" />

        <EditText
            android:layout_width="0dp"
            android:layout_height="0dp"
            android:background="@drawable/edit_text_shape"
            android:id="@+id/edit_text_city"
            android:hint="City"
            android:textColorHint="#bbbbbb"
            android:textColor="#000000"
            android:textSize="20sp"
            android:paddingStart="10dp"
            android:paddingEnd="10dp"
            android:inputType="textCapSentences"
            android:maxLines="1"
            android:imeOptions="actionNext"
            app:layout_constraintLeft_toLeftOf="@+id/left_guideline_edit_text"
            app:layout_constraintRight_toRightOf="@+id/right_guideline_edit_text"
            app:layout_constraintTop_toTopOf="@+id/top_guideline_edit_text_city"
            app:layout_constraintBottom_toBottomOf="@+id/bottom_guideline_edit_text_city" />

        <EditText
            android:layout_width="0dp"
            android:layout_height="0dp"
            android:background="@drawable/edit_text_shape"
            android:id="@+id/edit_text_country"
            android:hint="Country"
            android:textColorHint="#bbbbbb"
            android:textColor="#000000"
            android:textSize="20sp"
            android:paddingStart="10dp"
            android:paddingEnd="10dp"
            android:inputType="textCapSentences"
            android:maxLines="1"
            android:imeOptions="actionNext"
            app:layout_constraintLeft_toLeftOf="@+id/left_guideline_edit_text"
            app:layout_constraintRight_toRightOf="@+id/right_guideline_edit_text"
            app:layout_constraintTop_toTopOf="@+id/top_guideline_edit_text_country"
            app:layout_constraintBottom_toBottomOf="@+id/bottom_guideline_edit_text_country"/>

        <Button
            android:layout_width="0dp"
            android:layout_height="0dp"
            android:id="@+id/register_button"
            android:background="@drawable/button_shape"
            android:fontFamily="@font/inter_extrabold"
            android:textSize="28sp"
            android:text="Register"
            android:textAlignment="center"
            android:textAllCaps="false"
            android:textColor="#6633ff"
            app:layout_constraintLeft_toLeftOf="@+id/left_guideline_register_button"
            app:layout_constraintRight_toRightOf="@+id/right_guideline_register_button"
            app:layout_constraintTop_toTopOf="@+id/top_guideline_register_button"
            app:layout_constraintBottom_toBottomOf="@+id/bottom_guideline_register_button"/>

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/text_view_already_account"
            android:text="Already have an account?"
            android:fontFamily="@font/inter_thin"
            android:textSize="20sp"
            android:textColor="#ffffff"
            android:textAlignment="center"
            android:textAllCaps="false"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintRight_toRightOf="parent"
            app:layout_constraintTop_toTopOf="@+id/top_guideline_edit_text_view_already_account"
            app:layout_constraintBottom_toBottomOf="@+id/bottom_guideline_text_view_already_account"/>

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/text_view_log_in"
            android:text="@string/LogIn"
            android:fontFamily="@font/inter_semibold"
            android:textSize="28sp"
            android:textColor="#ffffff"
            android:textAlignment="center"
            android:textAllCaps="false"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintRight_toRightOf="parent"
            app:layout_constraintTop_toTopOf="@+id/top_guideline_text_view_log_in"
            app:layout_constraintBottom_toBottomOf="@+id/bottom_guideline_text_view_log_in"/>

    </androidx.constraintlayout.widget.ConstraintLayout>

这是我的活动代码。该代码的主要部分位于goToRegisterAs()方法的底部。

    package com.example.treeapp;

    import androidx.appcompat.app.AppCompatActivity;

    import android.content.Intent;
    import android.os.Bundle;
    import android.view.KeyEvent;
    import android.view.View;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.TextView;

    public class RegisterActivity extends AppCompatActivity {
        private EditText nameEditText;
        private EditText emailEditText;
        private EditText passwordEditText;
        private EditText cityEditText;
        private EditText countryEditText;
        private Button registerButton;
        private TextView alreadyAccountTextView;
        private TextView logInTextView;
        private String name;
        private String email;
        private String password;
        private String city;
        private String country;

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

            nameEditText = findViewById(R.id.edit_text_name);
            emailEditText = findViewById(R.id.edit_text_email);
            passwordEditText = findViewById(R.id.edit_text_password);
            cityEditText = findViewById(R.id.edit_text_city);
            countryEditText = findViewById(R.id.edit_text_country);
            registerButton = findViewById(R.id.register_button);
            alreadyAccountTextView = findViewById(R.id.text_view_already_account);
            logInTextView = findViewById(R.id.text_view_log_in);

            name = nameEditText.getText().toString();
            email = emailEditText.getText().toString();
            password = passwordEditText.getText().toString();
            city = cityEditText.getText().toString();
            country = countryEditText.getText().toString();

            registerButton.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    goToRegisterAs(view);
                }
            });

            countryEditText.setOnKeyListener(new View.OnKeyListener() {
                @Override
                public boolean onKey(View view, int i, KeyEvent keyEvent) {
                    if (keyEvent.getAction() == KeyEvent.ACTION_DOWN && i == KeyEvent.KEYCODE_ENTER) {
                        goToRegisterAs(view);
                        return true;
                    } else {
                        return false;
                    }
                }
            });

            logInTextView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    Intent intent = new Intent(view.getContext(), MainActivity.class);

                    view.getContext().startActivity(intent);
                }
            });
        }

        void goToRegisterAs(View view) {
            if (!(name.equals("") || email.equals("") || password.equals("") ||
                city.equals("") || country.equals(""))) {
                if (email.contains("@") && email.contains(".")) {
                    if (MainActivity.database.donorsDao().checkEmail(email) == 0 &&
                        MainActivity.database.plantersDao().checkEmail(email) == 0) {
                        Intent intent = new Intent(view.getContext(), RegisterAsActivity.class);
                        intent.putExtra("name", name);
                        intent.putExtra("email", email);
                        intent.putExtra("password", password);
                        intent.putExtra("city", city);
                        intent.putExtra("country", country);

                        view.getContext().startActivity(intent);
                    } else {
                        alreadyAccountTextView.setText("Already registered. Please log in.");
                    }
                } else {
                    alreadyAccountTextView.setText("Please enter correct email address.");
                }
            } else {
                alreadyAccountTextView.setText("Please enter all fields");
                alreadyAccountTextView.setText(name + " " + email + " " + password + " " + city + " " + country);
            }
        }
    }

该应用程序无法正常运行。因此,经过一番尝试,我发现我的EditTexts都返回了一个空字符串。在代码的最后一行alreadyAccountTextView.setText(name + " " + email + " " + password + " " + city + " " + country),已经AccountTextView为空。我在此处编写此行是因为即使我在每个字段中都输入了文本,该代码块仍在执行。我已经在StackOverflow上阅读了很多有关从EditTexts获取文本的问题和答案,并且所有人都说我应该使用EditText.getText()。toString()。但是由于某种原因,它对我不起作用。

克里斯蒂安·兹诺(Kristijan Zrno):

问题是您在OnCreate函数中初始化了字符串。活动开始时,仅调用一次此函数;因此,此时您的EditTexts都是空的,没有任何文本。

为了使当前文本位于EditTexts中,您应该在goToRegisterAs()函数中移动初始化内容

    void goToRegisterAs(View view) {
            name = nameEditText.getText().toString();
            email = emailEditText.getText().toString();
            password = passwordEditText.getText().toString();
            city = cityEditText.getText().toString();
            country = countryEditText.getText().toString();
                if (!(name.equals("") || email.equals("") || password.equals("") ||
                    city.equals("") || country.equals(""))) {
                    if (email.contains("@") && email.contains(".")) {
                        if (MainActivity.database.donorsDao().checkEmail(email) == 0 &&
                            MainActivity.database.plantersDao().checkEmail(email) == 0) {
                            Intent intent = new Intent(view.getContext(), RegisterAsActivity.class);
                            intent.putExtra("name", name);
                            intent.putExtra("email", email);
                            intent.putExtra("password", password);
                            intent.putExtra("city", city);
                            intent.putExtra("country", country);
    
                            view.getContext().startActivity(intent);
                        } else {
                            alreadyAccountTextView.setText("Already registered. Please log in.");
                        }
                    } else {
                        alreadyAccountTextView.setText("Please enter correct email address.");
                    }
                } else {
                    alreadyAccountTextView.setText("Please enter all fields");
                    alreadyAccountTextView.setText(name + " " + email + " " + password + " " + city + " " + country);
                }
            }

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

EditText.getText.toString()返回空字符串

EditText.getText.toString()返回空字符串

硒Chrome驱动程序的getText()方法有时会返回一个空字符串

为什么0.ToString(“#。##”)返回一个空字符串而不是0.00或至少为0?

添加一个空字符串vs toString-为什么不好?

为什么我对WinGetTitle的调用返回一个空字符串?

为什么我的函数返回一个空字符串?

Groovy:为什么按空格split()对一个空字符串进行返回会返回一个空字符串的列表?

为什么Xamarin等效的EditText.getText()返回一个字符串?

为什么 req.query.code 返回一个空字符串?

为什么此请求返回一个空字符串?

为什么nextLine()返回一个空字符串?

为什么 Promise 返回一个空字符串?

为什么json_encode返回一个空字符串

为什么`TRegEx.split` 返回一个空字符串作为第一个元素?

我的辅助函数返回一个空字符串

当字符串具有值时,“ get”方法将返回一个空字符串

当我将一个char添加到空字符串(如“” + c)时,为什么返回一个未知值?

为什么我从 jquery find().text() 得到一个空字符串?

为什么我的密码字段的值总是一个空字符串?

为什么我的密码字段的值总是一个空字符串?

为什么这个(主要是)空的Perl子例程返回一个空字符串?

为什么在Django模型图像中,Media.url返回一个空字符串,而不是图像链接?

为什么在for循环中第二次运行函数会返回一个空字符串?

为什么连接两个空字符串会导致一个空字符串?

如果出现未知字符,Tesseract有时会返回一个空字符串

为什么在 C++ 中将字符串和 char 连接起来会返回一个空字符串?

当我将一个空字符串传递给include(“”)时,它将始终返回true吗?

请我尝试将字符串结果连接到快速路由器中的变量,但它返回一个空字符串