从Android密码TextView获取文本

4

希望这个问题还没有被问过,因为我找不到答案。我正在尝试获取用户在在线服务中的用户名和密码。我创建了一个用户名 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();

无论我在密码字段中输入什么,弹出框消息都会给我返回一个。
Password: Password

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

5个回答

3
如果您想像“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);String toastMessage = loginField.getText().toString() + "\n" + passField.getText().toString();这段代码是可行的。但是我想问为什么可以从 TextView 获取登录信息,而密码只能从 EditText 获取呢? - The Holo Dev
你能否在上面的帖子中更新你的布局XML,以显示有关用户名的相关部分?R.id.user_name是否可能是EditText的ID? - JScoobyCed
@that1dev:你想要在消息中打印什么?你应该为相应的视图提供特定的ID。getText是从EditText和TextView获取文本的方法,两者是不同的。你可以在运行时编辑EditText的值,但对于TextView来说这是不可能的。如果你想改变TextView的值,那么你就需要编写代码来实现它。谢谢。继续编码。 - Shreyash Mahajan

0

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

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

将其存储为字符串

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

并且为了自己的验证而烤它


0

你可以从EditText获得值,而不是从TextView。你可以设置而不是获取。

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

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

0

怎么样?

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

用什么代替 "user_password"?


0

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

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接