首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >取消引用引用视图

取消引用引用视图
EN

Stack Overflow用户
提问于 2019-03-02 23:43:21
回答 1查看 497关注 0票数 0

我是Kotlin的新手,我不知道如何修复这个错误:未解决的引用:视图。我的目标是通过按下按钮转到另一个活动。我复制代码:

代码语言:javascript
复制
class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        findViewById<Button>(R.id.button).setOnClickListener{
            sendMessage(view)
        }



    }

    val EXTRA_MESSAGE = "com.example.monedas.MESSAGE"
    fun sendMessage(it: view) {
        val intent = Intent(this, ListActivity::class.java)
        val editText : TextView = findViewById(R.id.textView4)
        val message = editText.text.toString()
        intent.putExtra(EXTRA_MESSAGE, message)
        startActivity(intent)
    }


}
EN

回答 1

Stack Overflow用户

发布于 2019-03-02 23:56:11

您正在向sendMessage()函数传递未定义的参数。

您还没有在任何地方声明这个view变量。

但是看起来你并不需要它,因为你不需要sendMessage()的参数it

因此,更改为:

代码语言:javascript
复制
fun sendMessage() {
    val intent = Intent(this, ListActivity::class.java)
    val editText : TextView = findViewById(R.id.textView4)
    val message = editText.text
    intent.putExtra(EXTRA_MESSAGE, message)
    startActivity(intent)
}

然后这样叫它:

代码语言:javascript
复制
findViewById<Button>(R.id.button).setOnClickListener{
    sendMessage()
}

顺便说一句:

在Kotlin中,如果您想要访问activity类中膨胀布局的View,则不需要使用findViewById()

只需确保您已导入:

代码语言:javascript
复制
import kotlinx.android.synthetic.main.activity_main.*

然后你可以简单地这样做:

代码语言:javascript
复制
button.setOnClickListener{ sendMessage() }

sendMessage()

代码语言:javascript
复制
fun sendMessage() {
    val intent = Intent(this, ListActivity::class.java)
    intent.putExtra(EXTRA_MESSAGE, textView4.text)
    startActivity(intent)
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54960204

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档