访问片段上下文[重复]

问题描述 投票:0回答:2

我正在开发一个Android应用程序(Kotlin),正在尝试制作一个包含微调框的片段-语言列表。尽管我很难将“上下文”传递给ArrayAdapter。

我尝试使用“ this”和“ context”。但是这些都不起作用。带有“ let”的智能转换不能解决问题,为空检查添加“ if”也不能解决问题。

如何访问片段的“上下文”?在这里,我具有检查片段是否已添加到活动中的代码,但编译器仍将其视为“上下文?”。而不是“上下文”。

class QuickTranslation : Fragment() {

    private lateinit var binding: FragmentQuickTranslationBinding

    override fun onCreateView(
        inflater: LayoutInflater, container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View? {
        val binding = DataBindingUtil.inflate<FragmentQuickTranslationBinding>(
            inflater,
            R.layout.fragment_quick_translation, container, false
        )

        if (isAdded) { // HERE I check if contex is null
            val originalLangSpinner = binding.originalLangSpinner

            ArrayAdapter.createFromResource(
                context, // ERROR Type missmatch. Required: Context, Found: Context?
                R.array.supported_languages,
                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
                originalLangSpinner.adapter = adapter
            }
        }
        return binding.root
    }

}
android android-fragments android-activity spinner
2个回答
1
投票

您可以在片段类中使用requireContext()getActivity()


0
投票

使用activity!!并从中获取上下文。

© www.soinside.com 2019 - 2024. All rights reserved.