我在一個帶有 listview 和作業的片段中onItemClickListener。
當我onItemClickListener通過展示敬酒來測驗 eg 時,一切正常。
這是我的檔案的樣子:
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
with (binding) {
val arrayAdapter: ArrayAdapter<*>
val employeeCategories = arrayOf(
"Test", "Test2", "Test3"
)
arrayAdapter = ArrayAdapter(
activity!!,
android.R.layout.simple_list_item_1, employeeCategories)
employeeListView.apply {
adapter = arrayAdapter
}
employeeListView.setOnItemClickListener{parent, view, position, id ->
if (position==0){
Toast.makeText(activity, "Item One", Toast.LENGTH_SHORT).show()
}
}
}
}
要從這個片段導航到另一個片段,我想在單擊串列項時執行以下操作:
activity!!.findNavController(R.id.nav_host_fragment).popBackStack()
activity!!.findNavController(R.id.nav_host_fragment).navigate(R.id.navigation_help)
如果我在 之外添加它onItemClickListener,它也會成功導航。但是,如果我在onItemClickListenertoast 之前的位置添加相同的內容進行測驗,它就不再起作用了。單擊專案后沒有導航:
activity!!.findNavController(R.id.nav_host_fragment).popBackStack()
activity!!.findNavController(R.id.nav_host_fragment).navigate(R.id.navigation_help) <---- WORKS!
employeeListView.setOnItemClickListener{parent, view, position, id ->
if (position==0){
activity!!.findNavController(R.id.nav_host_fragment).popBackStack()
activity!!.findNavController(R.id.nav_host_fragment).navigate(R.id.navigation_help) <---- DONT WORKS! :(
}
我對 Kotlin 還比較陌生,不幸的是無法解釋為什么它在它之外onItemClickListener但不能與它結合使用。有人能告訴我這可能與什么有關嗎?
uj5u.com熱心網友回復:
您可以將以下內容添加為全域變數(在您的 onViewCreated 方法之外):
private val navController by lazy { findNavController() }
然后這樣做:
employeeListView.setOnItemClickListener{parent, view, position, id ->
if (position==0){
navController.popBackStack()
navController.navigate(R.id.navigation_help)
}
讓我知道它現在是否有效?
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/516452.html
標籤:安卓科特林列表显示
