Spinner 在 Fragment 中没有项目 Android Studio Kotlin

Spinner has no items Android Studio Kotlin in Fragment

抱歉,这里是大菜鸟。我的应用程序中有一个设置片段,我希望其中有一个下拉菜单。但是,无论我尝试什么,下拉菜单都没有任何项目。我的代码主要基于 this。这是我的设置片段:

class SettingsFragment: Fragment(),AdapterView.OnItemSelectedListener {


override fun onCreateView(
    inflater: LayoutInflater, container: ViewGroup?,
    savedInstanceState: Bundle?
): View? {
    val binding = FragmentSettingsBinding.inflate(inflater)
    val spinner : Spinner = binding.translationSelector
    // Create an ArrayAdapter using the string array and a default spinner layout
    ArrayAdapter.createFromResource(
        requireActivity(),
        R.array.planets_array,
        android.R.layout.simple_spinner_item
    ).also { adapter ->
        // Specify the layout to use when the list of choices appears
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)
        // Apply the adapter to the spinner
        spinner.adapter = adapter
    }

    return inflater.inflate(R.layout.fragment_settings, container, false)
}

override fun onItemSelected(arg0: AdapterView<*>, arg1: View, position: Int, id: Long) {
    val toastNotice = "you selected choice # " + position
    val duration = Toast.LENGTH_SHORT
    val toast = Toast.makeText(this.context,toastNotice,duration)
    toast.show()
}

override fun onNothingSelected(arg0: AdapterView<*>) {

}

您可能会注意到我使用“requireActivity()”作为 createFromResource 的参数而不是“this”,因为“this”给出了类型不匹配...不确定我是否应该这样做,但我看到了它在计算器的某个地方。这是我的布局 xml:

    <?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools">

    <data>
        <variable
            name="viewModel"
            type="com.example.edtma.ScriptureModel" />
    </data>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        tools:context=".SettingsFragment"
        android:background="#E4E1E1">


        <Spinner
            android:id="@+id/translationSelector"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:contentDescription="@string/SpinnerLabel"
            android:minHeight="48dp" />

    </LinearLayout>
</layout>

当我 运行 这个时,设置片段有一个微调器的小箭头,但它没有项目。如果你好奇,这是我的 strings.xml

    <resources>
    <string name="app_name">edtma</string>
    <string-array name="planets_array">
        <item>Mercury</item>
        <item>Venus</item>
        <item>Earth</item>
        <item>Mars</item>
        <item>Jupiter</item>
        <item>Saturn</item>
        <item>Uranus</item>
        <item>Neptune</item>
    </string-array>
</resources>

如有任何帮助,我们将不胜感激。我尽可能长时间地尝试发布在此处的其他解决方案,但无法使任何工作正常进行。 heres a screenshot of my fragment with empty dropdown

为了帮助其他人,我终于找到了问题所在。我的 onCreateView 的 return 语句应该是 returning binding.root,即更改为:

return inflater.inflate(R.layout.fragment_settings, container, false)

对此:

return binding.root