Je suis novice.
Je veux changer le texte de
TextView
En cliquant dessus.
Mon code:
val text: TextView = findViewById(R.id.Android_text) as TextView
text.setOnClickListener {
text.setText(getString(R.string.name))
}
Sortie: J'ai obtenu le résultat mais en montrant utilise la syntaxe d'accès à la propriété .
Quelqu'un peut-il me dire comment le faire?
Merci d'avance.
Dans kotlin, n'utilisez pas de getters ni de setters comme en Java. Le format correct du kotlin est donné ci-dessous.
val textView: TextView = findViewById(R.id.Android_text) as TextView
textView.setOnClickListener {
textView.text = getString(R.string.name)
}
Pour obtenir les valeurs de la variable Textview
, nous devons utiliser cette méthode
val str: String = textView.text.toString()
println("the value is $str")
il suffit d'ajouter ci-dessous la ligne et d'accéder à l'objet xml direct
import kotlinx.Android.synthetic.main.activity_main.*
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
txt_HelloWorld.text = "abc"
}
remplacez activity_main en fonction de votre nom XML
Trouvez la vue texte à partir de la mise en page.
val textView : TextView = findViewById(R.id.Android_text) as TextView
Paramétrer onClickListener dans la vue texte.
textview.setOnClickListener(object: View.OnClickListener {
override fun onClick(view: View): Unit {
// Code here.
textView.text = getString(R.string.name)
}
})
Les parenthèses d'argument peuvent être omises de View.setOnClickListener si nous passons un argument littéral de fonction unique. Donc, le code simplifié sera:
textview.setOnClickListener {
// Code here.
textView.text = getString(R.string.name)
}
findViewById (R.id.Android_text) n'a pas besoin de conversion de type.
import kotlinx.Android.synthetic.main.MainActivity.*
class Mainactivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.MainActivity)
txt.setText("hello Kotlin")
}
}
val text: TextView = findViewById<TextView>(R.id.text_id) as TextView
<TextView
Android:id="@+id/usage"
Android:layout_marginTop="220dip"
Android:layout_marginLeft="45dip"
Android:layout_marginRight="15dip"
Android:typeface="serif"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="Google "
Android:textColor="#030900"/>
usage.text="hello world"
Utilisation:
val textView: TextView = findViewById(R.id.Android_text) as TextView
textView.setOnClickListener {
textView.text = getString(R.string.name)
}
Ou:
vous pouvez annoter chaque site d’appel avec @Suppress("UsePropertyAccessSyntax")
, mais c’est moche.