J'ai une disposition de saisie de texte avec l'identifiant login_mobile_number, j'ai importé ce module pour arrêter d'utiliser les méthodes findViewById :
android.support.design.widget.TextInputEditText{dfdb412 VFED..CL. .F...... 0,0-888,136 #7f0800e1 app:id/textInputEditText}
Chaque fois que j'essaye d'obtenir du texte depuis le TextInputLayout by
val loginMobileNumberString:String = login_mobile_number.editText.toString()
Il renvoie le nom de l'objet au lieu de la chaîne saisie comme ceci:
import kotlinx.android.synthetic.main.activity_login.*
Pourquoi c'est se produit? Quelle est la méthode appropriée pour obtenir une chaîne de ce champ?
4 Réponses :
Il vous suffit de faire ceci:
val loginMobileNumberString:String = login_mobile_number.text.toString()
De plus, vous n'avez pas besoin de prendre le texte de la mise en page d'entrée de texte, il ne devrait s'occuper que de la mise en page de l'entrée, comme dans le nom, vous pouvez le faire directement à partir du texte d'édition. Donnez-lui simplement un identifiant et importez-le de la même manière que vous l'avez fait avec la mise en page de saisie de texte.
Vous pouvez utiliser ceci;
val loginMobileNumberString = login_mobile_number.text.toString()
Pas besoin de spécifier comme :String.
le dernier ".toString ()" converti en chaîne par exemple SpannableString en String, qui vous permet de comparer les chaînes.
Une autre façon est de le mettre entre guillemets, ce qui en fait une chaîne
val loginMobileNumberString = "$ {login_mobile_number.text}"
ou si login_mobile_number fait référence à un TextInputLayout
val loginMobileNumberString = "$ {login_mobile_number.editText.text}"
Pour obtenir le texte de TextInputEditText dans TextInputLayout
val description = descriptionInputLayout.editText?.text.toString()
println("Description: $goalDescription")
Obtenir le texte
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/descriptionInputLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@+id/editTextDate2"
tools:layout_editor_absoluteX="184dp">
<com.google.android.material.textfield.TextInputEditText
android:layout_width="match_parent"
android:layout_height="250dp"
android:hint="Description" />
</com.google.android.material.textfield.TextInputLayout>
Si
editTextest unEditTextalorseditText.text.toString ()