尝试在Android应用程序中为按钮添加onClickListener时出现编译错误。错误如下:
构建失败792毫秒 运行版本号690 ms 加载建立2毫秒 配置版本94毫秒 计算任务图41毫秒 运行任务550毫秒 空
/ home / avinash / AndroidStudioProjects / JustJava
app / src / main / java
com / example / android / justjava / MainActivity.kt
期待成员声明
期待成员声明
期待成员声明
期待成员声明
函数声明必须具有名称任务:app:buildInfoGeneratorDebug
MainActivity.kt
如下:
package com.example.android.justjava
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
import android.widget.Toast
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
val order_button = findViewById<Button>(R.id.order_button)
//set listener
order_button.setOnClickListener {
//Action perform when the user clicks on the button.
Toast.makeText(this@MainActivity, "You clicked me.", Toast.LENGTH_SHORT).show()
}
}
XML如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Quantity"
android:textAllCaps="true"
android:layout_marginBottom="16dp"
android:paddingLeft="16dp"
android:paddingTop="16dp"/>
<TextView
android:id="@+id/quantity_text_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="0"
android:textColor="#000000"
android:textSize="16sp"
android:paddingLeft="16dp"/>
<Button android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Order"
android:layout_marginTop="16dp"
android:id="@+id/order_button"/>
答案 0 :(得分:2)
由于您已经在使用Kotlin,如何尝试 More Kotlin 风格?
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
btnLabel.setOnClickListener { Toast.makeText(this, "Toast", Toast.LENGTH_SHORT).show() }
}
您不需要findViewById()
或其他任何东西。
您需要导入类似import kotlinx.android.synthetic.main.activity_main.*
但是AndroidStudio可以为您自动生成。
答案 1 :(得分:0)
像这样更新您的MainActivity
class MainActivity: AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle ? ) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val order_button = findViewById<Button> (R.id.order_button)
//set listener
order_button.setOnClickListener {
//Action perform when the user clicks on the button.
Toast.makeText(this @MainActivity, "You clicked me.", Toast.LENGTH_SHORT).show()
}
}
}