web-dev-qa-db-fra.com

Kotlin: Comment obtenir et définir un texte sur TextView dans Android avec Kotlin?

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.

13
Nitt

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")
30
Nithinlal

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

7
tej shah

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)
}
4
Avijit Karmakar

findViewById (R.id.Android_text) n'a pas besoin de conversion de type.

0
sunghun
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")

    }

}
0
Venkatesh Jose
val text: TextView = findViewById<TextView>(R.id.text_id) as TextView
0
Mundroid
  <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"
0
eagerprince

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.

0
Benny