Котлин: как получить и установить текст в TextView в Android с помощью Kotlin?
Я новичок.
Я хочу изменить текст
TextView
в то время как нажмите на него.
мой код:
val text: TextView = findViewById(R.id.android_text) as TextView
text.setOnClickListener {
text.setText(getString(R.string.name))
}
выход: я получил выход, но показываю использовать синтаксис доступа к свойствам.
может кто-нибудь сказать мне, как это сделать?
спасибо заранее.
9 ответов
в kotlin не используйте геттеры и сеттеры, как в java.Правильный формат kotlin приведен ниже.
val textView: TextView = findViewById(R.id.android_text) as TextView
textView.setOnClickListener {
textView.text = getString(R.string.name)
}
чтобы получить значения из Textview
мы должны использовать этот метод
val str: String = textView.text.toString()
println("the value is $str")
просто добавьте строку ниже и получите доступ к прямому объекту xml
import kotlinx.android.synthetic.main.activity_main.*
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
txt_HelloWorld.text = "abc"
}
заменить activity_main по вашему имени XML
найдите текстовый вид из макета.
val textView : TextView = findViewById(R.id.android_text) as TextView
настройка onClickListener в textview.
textview.setOnClickListener(object: View.OnClickListener {
override fun onClick(view: View): Unit {
// Code here.
textView.text = getString(R.string.name)
}
})
скобки аргументов могут быть опущены из представления.setOnClickListener, если мы передаем один аргумент литерала функции. Итак, упрощенный код будет:
textview.setOnClickListener {
// Code here.
textView.text = getString(R.string.name)
}
использование:
val textView: TextView = findViewById(R.id.android_text) as TextView
textView.setOnClickListener {
textView.text = getString(R.string.name)
}
или:
вы можете аннотировать каждый сайт вызова с @Suppress("UsePropertyAccessSyntax")
, но это некрасиво.
<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"
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")
}
}
верхний пост имеет "как TextView", добавленный в конце. Вы можете получить другие ошибки компилятора, если вы оставите это. Следующее должно быть хорошо.
val text: TextView = findViewById(R.id.android_text) as TextView
где "android_text" - это идентификатор вашего textView