我有一个简单的Android应用程序,我想点击按钮来传递其他活动。但上面说
未解析的引用:按钮
即使我在XML中给予ID。我不知道我错在哪里。
截图:
activity_main.xml:
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/button"
android:text="Click"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
main_activity:
class MainActivity : AppCompatActivity() {
companion object {
const val USER = "user"
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val user = User( "mayk", "qqqq", PersonalInfo("mayk", "james"))
button.setOnClickListener{
val intent = Intent (this, Activity2::class.java)
intent.putExtra(USER, user)
startActivity(intent)
}
}
}
4条答案
按热度按时间tf7tbtn21#
34gzjxbg2#
为什么还说“未解决的引用:按钮”即使我在xml中有按钮id?
xml布局文件中的id不是Kotlin变量。你需要声明一个变量
val button
,然后才能使用它。您还需要初始化变量以引用Button
对象。一种方法是我建议你阅读https://d.android.com上的初学者指南,以了解Android编程的基础知识。
elcex8rz3#
不需要使用findViewById()
转到您的Build.Gradle(模块:app)添加以下行
或
然后它会要求你同步然后按同步后,它会要求你导入,只有使用ALT+ENTER
更新:此解决方案已弃用
现在必须使用视图绑定
在模块级build.gradle文件中将viewBinding构建选项设置为true
要设置绑定类的示例以供Activity使用,请在Activity的onCreate()方法中执行以下步骤:
现在,您可以使用绑定类的示例来引用任何视图:
有关详细信息,请参阅https://developer.android.com/topic/libraries/view-binding
e3bfsja24#
我在跟着一个教程,它是超级简单的,为什么他们把它变成这个烂摊子?对我来说已经够难的了。。我想哭,我现在明白的一点点都是无用的回到0…