0

这是电子邮件的 .XML 代码,密码和其他字段也类似。

 <com.google.android.material.textfield.TextInputLayout
            android:id="@+id/edittxt_email"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_margin="5dp"
            android:background="#f1f2f6"
            android:hint="Email">

            <EditText
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:imeOptions="actionNext"
                android:background="@color/light_grey"
                android:inputType="textEmailAddress"
                android:typeface="sans" />

        </com.google.android.material.textfield.TextInputLayout>

   

现在,我在这样的 Java 文件中使用它。即使我显示全名,它也会显示一些存储的 id 而不是实际名称。

fullname = (TextInputLayout) findViewById(R.id.editxt_fullname);

对于注册按钮点击,这就是我正在做的。

     btnregister.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
        
                        String user = fullname.toString`btnregister.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
        
                        String user = fullname.toString();
    ();

当我显示用户只是为了查看它存储的内容时,它显示了一些 id,而不是用户名。问题是什么?首先,我得到了转换错误,现在我得到了无效的文本而不是我输入的文本

4

2 回答 2

0

这里的问题是您正在使用直接转换fullname为字符串。

String user = fullname.toString();

这是错误的,因为fullnameis TextInputLayout

要从您那里获取文本,TextInputLayout您需要使用:

String user = fullname.getEditText().getText().toString();
于 2021-06-12T14:53:57.833 回答
0

您可以使用 TextInputLayout 向用户显示错误。看来您想要做的是从输入字段中获取文本,即 EditText。你需要做的是给 EditText 一个 id,然后在你的 Java 代码中引用它,而不是 TextInputLayout。因此,您可以从 TextInputLayout 中移动您的 id 并将其放在 EditText 上,如下所示:

<com.google.android.material.textfield.TextInputLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="5dp"
        android:background="#f1f2f6"
        android:hint="Email">

        <EditText
            android:id="@+id/edittxt_email"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:imeOptions="actionNext"
            android:background="@color/light_grey"
            android:inputType="textEmailAddress"
            android:typeface="sans" />

</com.google.android.material.textfield.TextInputLayout>

然后在您的 Java 代码中引用它。

fullname = (EditText) findViewById(R.id.editxt_fullname);
于 2021-06-12T14:28:58.787 回答