我是新手。
我想在点击它时更改
TextView
的文字。
我的代码:
val text: TextView = findViewById(R.id.android_text) as TextView
text.setOnClickListener {
text.setText(getString(R.string.name))
}
输出:我获得了输出但显示使用属性访问语法。
谁能告诉我怎么做?
提前致谢。
答案 0 :(得分:33)
在kotlin中,不要像java中那样使用getter和setter。下面给出了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")
答案 1 :(得分:7)
只需添加以下行并访问直接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"
}
根据您的XML名称替换activity_main
答案 2 :(得分:4)
从布局中查找文本视图。
val textView : TextView = findViewById(R.id.android_text) as TextView
在textview上设置onClickListener。
textview.setOnClickListener(object: View.OnClickListener {
override fun onClick(view: View): Unit {
// Code here.
textView.text = getString(R.string.name)
}
})
如果我们传递单个函数文字参数,则可以从View.setOnClickListener中省略参数括号。因此,简化的代码将是:
textview.setOnClickListener {
// Code here.
textView.text = getString(R.string.name)
}
答案 3 :(得分:0)
使用:
val textView: TextView = findViewById(R.id.android_text) as TextView
textView.setOnClickListener {
textView.text = getString(R.string.name)
}
或者:
您可以使用@Suppress("UsePropertyAccessSyntax")
为每个呼叫网站添加注释,但这很难看。
答案 4 :(得分:0)
<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"
答案 5 :(得分:0)
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")
}
}
答案 6 :(得分:0)
val text: TextView = findViewById<TextView>(R.id.text_id) as TextView
答案 7 :(得分:0)
findViewById(R.id.android_text)不需要强制转换。
答案 8 :(得分:0)
是的,但是晚了-但可能会帮助参考的人
带有 EditText ,按钮和 TextView 的xml 按钮上的
onClick 会将值从 EditText 更新为 TextView
<EditText
android:id="@+id/et_id"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<Button
android:id="@+id/btn_submit_id"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<TextView
android:id="@+id/txt_id"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
看看代码在您的课堂上做些什么
不需要像Java中那样初始化组件的ID。您可以通过他们的xml ID来实现
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_sample)
btn_submit_id.setOnClickListener {
txt_id.setText(et_id.text);
}
}
答案 9 :(得分:0)
在Kotlin中设置文本
textview.text = "write here"
答案 10 :(得分:-1)
顶部帖子的末尾附加了“as TextView”。如果将其保留,可能会出现其他编译器错误。以下应该没问题。
val text: TextView = findViewById(R.id.android_text) as TextView
其中'android_text'是textView的ID