2012-02-18 8 views
3

J'espère que cela n'a pas encore été demandé, car je ne pouvais pas le trouver. J'essaie d'obtenir le nom d'utilisateur et le mot de passe d'un utilisateur pour un service en ligne. J'ai créé un nom d'utilisateur TextView et un mot de passe TextView. Je suis capable de sortir le texte du nom d'utilisateur TextView sans problèmes. Cependant, je ne peux rien obtenir du mot de passe TextView. Ci-dessous le XML:Obtenir le texte du mot de passe Android TextView

<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" /> 

Le problème est, si je lance le code

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

puis

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

Peu importe ce que je mets dans le champ de mot de passe, le message de pain grillé donne moi

Password: Password 

Je évidemment Je ne vais pas faire griller le mot de passe des utilisateurs normalement, je le fais juste maintenant parce que je veux m'assurer que je lis les entrées correctement. Malheureusement, cela ne semble pas être le cas, car je ne peux pas lire le champ du mot de passe. Comment vous débrouillez-vous? Des tonnes d'applications semblent pouvoir le faire. Existe-t-il un moyen plus simple d'obtenir un mot de passe que ce que je suis en train de faire?

Répondre

3

Si vous souhaitez utiliser Toast comme "PassWord: YOUR EDITTEXT VALUE", utilisez-le.

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

puis utilisez:

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

pain grillé maintenant le message.

Profitez-en. :)

+0

Merci, cela a fonctionné. J'ai une autre question cependant. TextView loginField = (TextView) findViewById (R.id.utilisateur_utilisateur); EditText passField = (EditText) findViewById (R.id.editText2); Chaîne toastMessage = loginField.getText(). ToString() + "\ n" + passField.getText(). ToString(); Cela fonctionne. Pourquoi puis-je obtenir les informations de connexion de TextView, et le mot de passe seulement de EditText? –

+0

Pouvez-vous mettre à jour votre mise en page XML dans votre message ci-dessus pour montrer la partie pertinente pour le nom d'utilisateur. Est-il possible que R.id.user_name soit l'ID de EditText? – JScoobyCed

+0

@ that1dev: Qu'est-ce que vous voulez imprimer dans le message? Vous devriez avoir à donner l'identifiant spécifique à la vue respective. Et getText est la méthode pour obtenir le texte de EditText et le TextView. Et les deux sont différents. Vous pouvez modifier la valeur EditText lors de l'exécution, mais ce n'est pas possible pour TextView. Si vous voulez changer la valeur du texte, alors vous devriez faire coading pour le faire. Merci. Gardez coading. –

0

Que diriez-vous

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

au lieu de "user_password"?

0

Vous devriez obtenir le texte de la EditText et non de la TextView

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

Mec Vous essayez de récupérer le mot de passe de TextView vous devez chercher à EditText

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

magasin en chaîne comme

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

et le faire griller pour propre verificat ion

0

Vous pouvez obtenir la valeur de EditText pas du TextView. Vous pouvez définir ne pas obtenir.

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

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