片段中的 Android ListView ArrayAdapter 不起作用

Posted

技术标签:

【中文标题】片段中的 Android ListView ArrayAdapter 不起作用【英文标题】:Android ListView ArrayAdapter in fragment not work 【发布时间】:2020-08-30 20:44:09 【问题描述】:

我一直试图理解为什么它有一段时间不起作用,我已经遵循了几个指南并且程序总是相同的。

ArrayAdapter 部分返回一个与上下文相关的错误:

Screenshot with ArrayAdapter Error

我认为问题可能与片段有关,但我无法解决。我的目标是尝试将数组添加到列表视图中

menuFragment.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_
    android:layout_
    android:orientation="vertical"
    tools:context=".MenuFragment">


    <ListView
        android:id="@+id/list_menu"
        android:layout_
        android:layout_
    />
</LinearLayout>

MenuFragment.kt

class MenuFragment : Fragment() 


    override fun onCreateView(
        inflater: LayoutInflater, container: ViewGroup?,
        savedInstanceState: Bundle?

    ): View? 

        val view: View = inflater.inflate(R.layout.fragment_menu, container, false)

        val arrayAdapter: ArrayAdapter<*>
        val menuItems = arrayOf("wine", "beer", "pizza", "steak", "chicken")

        var mListView = list_menu

        arrayAdapter = ArrayAdapter(this, android.R.layout.simple_list_item_1, menuItems)

        mListView.adapter = arrayAdapter


        return view

    

【问题讨论】:

【参考方案1】:

this 引用 Fragment,您应该在 ArrayAdapter 构造函数中使用 Context

您可以从getActivity() 获取上下文或将其传递给MenuFragment

【讨论】:

以上是关于片段中的 Android ListView ArrayAdapter 不起作用的主要内容,如果未能解决你的问题,请参考以下文章

片段中的 Android ListView ArrayAdapter 不起作用

片段中的Android ListView - 获取新数据后刷新表的问题

片段中ListView的android自定义适配器

Android - ListView 中的延迟点击

Android - 片段中的 setAdapter [重复]

未创建 Android listview 内容视图