【问题标题】:Get Text from Android Password TextView从 Android 密码 TextView 获取文本
【发布时间】:2026-02-12 20:20:05
【问题描述】:

我希望这还没有被问到,因为我找不到它。我正在尝试获取在线服务的用户名和密码。我创建了一个用户名 TextView 和一个密码 TextView。我可以毫无问题地从用户名 TextView 中获取文本。但是,我无法从密码 TextView 中得到任何信息。以下是 XML:

<TextView
    android:id="@+id/user_password"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:layout_marginTop="8dp"
    android:text="@string/passcodeQuery"
    android:textAppearance="?android:attr/textAppearanceLarge" />

<EditText
    android:id="@+id/editText2"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_marginLeft="8dp"
    android:layout_marginRight="8dp"
    android:layout_marginTop="8dp"
    android:hint="@string/passwordHint"
    android:inputType="textPassword" />

问题是,如果我运行代码

TextView passField = (TextView)findViewById(R.id.user_password);

然后

String toastMessage = "Password: " + passField.getText().toString();

无论我在密码字段中输入什么,toast 消息都会给我

Password: Password

我显然不会正常地敬酒用户密码,我现在只是这样做,因为我想确保我正确读取输入。不幸的是,情况似乎并非如此,因为我无法读取密码字段。你怎么解决这个问题?吨的应用程序似乎能够做到这一点。有没有比我现在做的更简单的方法来获取密码?

【问题讨论】:

    标签: android passwords textview


    【解决方案1】:

    如果你想像“PassWord: YOUR EDITTEXT VALUE”一样 Toast,那么就使用这个。

    EditText passField = (EditText)findViewById(R.id.editText2); 
    

    然后使用:

    String toastMessage = "Password: " + passField.getText().toString();
    

    现在敬酒。

    享受。 :)

    【讨论】:

    • 谢谢,成功了。不过我还有一个问题。 TextView loginField = (TextView)findViewById(R.id.user_username); EditText passField = (EditText)findViewById(R.id.editText2);字符串 toastMessage = loginField.getText().toString() + "\n" + passField.getText().toString();这样可行。为什么我只能从 TextView 获取登录信息,而只能从 EditText 获取密码?
    • 您能否在上面的帖子中更新您的布局 XML 以显示用户名的相关部分。 R.id.user_name 可能是EditText的ID吗?
    • @that1dev: 你想在消息中打印什么?您应该必须将特定 ID 提供给相应的视图。 getText 是从 EditText 和 TextView 中获取文本的方法。两者都是不同的。您可以在运行时编辑 EditText 值,但不能用于 TextView。如果您想更改 textView 的值,那么您必须完成编码才能做到这一点。谢谢。继续写代码。
    【解决方案2】:

    怎么样

    EditText passField = (EditText)findViewById(R.id.editText2);
    

    而不是“user_password”?

    【讨论】:

      【解决方案3】:

      Dude,您正在尝试从 TextView 获取密码,而您必须从 EditText 获取密码

      EditText password = (EditText)findViewById(R.id.editText2);
      

      将其存储在字符串中

      String pwd = password.getText().toString();
      

      敬酒以供自己验证

      【讨论】:

        【解决方案4】:

        您可以从 EditText 而不是从 TextView 获取值。您可以设置不获取。

              EditText passField = (EditText )findViewById(R.id.editText2);
        
              String toastMessage = "Password: " + passField.getText().toString().trim();
        

        【讨论】:

          【解决方案5】:

          你应该从EditText而不是TextView获取文本

          EditText passField = (EditText )findViewById(R.id.editText2);    
          String toastMessage = "Password: " + passField.getText().toString();
          

          【讨论】: