setOnClickListener 未解析的引用
setOnClickListener unresolved reference
我现在想要的只是在我的主 activity 中有一系列按钮,这让我进入其他意图,在那里我可以测试其他一些东西并继续学习。
我真的不喜欢留下警告,所以当 android:onClick
抛出 Old versions of the platform do not properly support resolving android:onClick
时,我读了很多书,发现我应该使用 setOnClickListener
。我看到了很多关于 setOnClickListener
的答案,我找到了很多解决方案,但我花了很多时间才找到这个:
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val introduction = findViewById<Button>(R.id.introduction)
val needXML = findViewById<Button>(R.id.needXML)
introduction.setOnClickListener {
Toast.makeText(this@MainActivity, "button 1 works!", Toast.LENGTH_SHORT).show()
}
needXML.setOnClickListener {
Toast.makeText(this@MainActivity, "button 2 works!", Toast.LENGTH_SHORT).show()
}
}
}
我仍然得到 Unresolved reference: Button
。我在谷歌上搜索了很多,最后设法通过添加解决了这个问题:
import android.widget.Button
找到 import android.widget.Toast
制作简单的警报很容易,因为这部分包含在许多教程中,但是 import android.widget.Button
- 根本没有。
所以,故事到此结束,我的问题是:
1:我使用 setOnClickListener
的方式是否正确,或者是否有比为每个可点击元素实现 val
更好的方法?
2:我想使用 when
(switch
的 kotlin 版本)来确定点击了什么...这可能吗,还是我想太多了?
3:为了 setOnClickListener
,我阅读了很多 tutorials/answer,看到了很多“只做 buttonId.setOnClickListener
”的提示。然而,我发现 import android.widget.Button
真是个奇迹——就像这是显而易见的事情一样。这对我来说显然不明显。我怎么知道将来我应该导入什么才能使用其他功能?也许我应该从阅读一些文档开始 - 如果是这样的话,那么任何人都可以 post 我 link 我应该从哪里开始?我试图自学一切,但我是从头开始,现在我真的觉得我错过了一些非常重要的东西。
Is the way I'm using setOnClickListener even correct, or is there a better way than implementing an val for every single clickable element?
findViewById<Button>(R.id.introduction).setOnClickListener {
}
应该也可以工作,好像您以后不需要对按钮的实际引用。
I'd like to use when (kotlin version of switch), to determine what was clicked... is this possible, or am I overthinking simple things?
有一种方法可以做到,但实际上并不需要,它变成了一个庞大的when
语句,可能难以管理,坚持你在这里做的事情。
How should I know in future, what should I import in order to use other functions?
体验、实践、阅读文档,并让 IDE 帮助您。根据您的 OS,android studio 可以提供为您导入必要依赖项的选项,通常您可以将光标悬停在未解析的引用(通常是红色)上以查看 android studio 是否为您提供导入选项
我现在想要的只是在我的主 activity 中有一系列按钮,这让我进入其他意图,在那里我可以测试其他一些东西并继续学习。
我真的不喜欢留下警告,所以当 android:onClick
抛出 Old versions of the platform do not properly support resolving android:onClick
时,我读了很多书,发现我应该使用 setOnClickListener
。我看到了很多关于 setOnClickListener
的答案,我找到了很多解决方案,但我花了很多时间才找到这个:
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val introduction = findViewById<Button>(R.id.introduction)
val needXML = findViewById<Button>(R.id.needXML)
introduction.setOnClickListener {
Toast.makeText(this@MainActivity, "button 1 works!", Toast.LENGTH_SHORT).show()
}
needXML.setOnClickListener {
Toast.makeText(this@MainActivity, "button 2 works!", Toast.LENGTH_SHORT).show()
}
}
}
我仍然得到 Unresolved reference: Button
。我在谷歌上搜索了很多,最后设法通过添加解决了这个问题:
import android.widget.Button
找到 import android.widget.Toast
制作简单的警报很容易,因为这部分包含在许多教程中,但是 import android.widget.Button
- 根本没有。
所以,故事到此结束,我的问题是:
1:我使用 setOnClickListener
的方式是否正确,或者是否有比为每个可点击元素实现 val
更好的方法?
2:我想使用 when
(switch
的 kotlin 版本)来确定点击了什么...这可能吗,还是我想太多了?
3:为了 setOnClickListener
,我阅读了很多 tutorials/answer,看到了很多“只做 buttonId.setOnClickListener
”的提示。然而,我发现 import android.widget.Button
真是个奇迹——就像这是显而易见的事情一样。这对我来说显然不明显。我怎么知道将来我应该导入什么才能使用其他功能?也许我应该从阅读一些文档开始 - 如果是这样的话,那么任何人都可以 post 我 link 我应该从哪里开始?我试图自学一切,但我是从头开始,现在我真的觉得我错过了一些非常重要的东西。
Is the way I'm using setOnClickListener even correct, or is there a better way than implementing an val for every single clickable element?
findViewById<Button>(R.id.introduction).setOnClickListener {
}
应该也可以工作,好像您以后不需要对按钮的实际引用。
I'd like to use when (kotlin version of switch), to determine what was clicked... is this possible, or am I overthinking simple things?
有一种方法可以做到,但实际上并不需要,它变成了一个庞大的when
语句,可能难以管理,坚持你在这里做的事情。
How should I know in future, what should I import in order to use other functions?
体验、实践、阅读文档,并让 IDE 帮助您。根据您的 OS,android studio 可以提供为您导入必要依赖项的选项,通常您可以将光标悬停在未解析的引用(通常是红色)上以查看 android studio 是否为您提供导入选项