我查看了有關此錯誤的所有其他問題,但沒有一個有幫助。我正在嘗試在布局檔案中創建對按鈕的參考,當我設定 onClickListener 時,我得到“期望成員宣告”。這發生在第 35 行。旁注,我還在同一行收到錯誤“函式宣告必須有名稱”。這是代碼:
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.view.View
import android.widget.*
private var userLocation: Any = ""
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val spinner: Spinner = findViewById<Spinner>(R.id.locations)
spinner.adapter = ArrayAdapter(
this,
android.support.v7.appcompat.R.layout.support_simple_spinner_dropdown_item,
resources.getStringArray(R.array.rooms)
)
spinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
override fun onItemSelected(
adapterView: AdapterView<*>?,
view: View?,
position: Int,
p3: Long
) {
userLocation = adapterView?.getItemAtPosition(position)!!
}
override fun onNothingSelected(p0: AdapterView<*>?) {
}
}
}
val button: Button = findViewById<Button>(R.id.button)
button.setOnClickListener{
Toast.makeText(this, "Selected $userLocation", Toast.LENGTH_SHORT).show()
}
}
uj5u.com熱心網友回復:
這些代碼行:
val button: Button = findViewById<Button>(R.id.button)
button.setOnClickListener{
Toast.makeText(this, "Selected $userLocation", Toast.LENGTH_SHORT).show()
}
您已在任何功能之外定義。這意味著button您正在定義一個類級別的屬性。在呼叫任何函式之前初始化屬性,因此此findViewById呼叫將在運行時失敗,因為它將在之前呼叫onCreate()。
而且你不能簡單地呼叫一個函式,就像一個函式setOnClickListener的頂層在一個不知名的地方。這就是為什么您出現“預期成員宣告”錯誤的原因。
您需要在onCreate()函式中移動所有這些代碼。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/477359.html
