我在倒數第二個緊括號上出現錯誤。
錯誤:具有塊體('{...}')的函式中需要一個'return'運算式
我試圖從我的片段(儀表板)中的 ImageButton 打開一個活動(TM)。
class Dashboard : Fragment() {
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View {
// Inflate the layout for this fragment
val view = inflater.inflate(R.layout.fragment_dashboard, container, false)
view.findViewById<ImageButton>(R.id.card1).setOnClickListener {
val card1 = Intent(activity, TMs::class.java)
activity?.startActivity(card1)
}
}
}
uj5u.com熱心網友回復:
onCreateView 函式確實回傳一個視圖。您已經膨脹了 View 物件,只需回傳它。
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View {
val view = inflater.inflate(R.layout.fragment_dashboard, container, false)
..code..
return view
無論如何,我強烈建議您在onViewCreated()
. 所以我們繼續逐步創建片段,首先我們在 onCreateView(): View 上“膨脹視圖”,然后一旦創建,我們就可以添加 UI 邏輯(作為偵聽器)。
它看起來像這樣:
class Dashboard : Fragment() {
private lateinit var _view: View
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View {
_view = inflater.inflate(R.layout.fragment_dashboard, container, false)
return _view
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
view.findViewById<ImageButton>(R.id.card1).setOnClickListener {
val card1 = Intent(activity, TMs::class.java)
activity?.startActivity(card1)
}
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/460278.html