访问片段的上下文 [重复]
Posted
技术标签:
【中文标题】访问片段的上下文 [重复]【英文标题】:Accessing the context of a fragment [duplicate] 【发布时间】:2020-04-08 18:13:34 【问题描述】:我在一个 android 应用程序 (Kotlin) 上工作,我正在尝试制作一个包含微调器的片段 - 语言列表。虽然我很难将“上下文”传递给 ArrayAdapter。
我尝试使用“this”和“context”。但这些都不起作用。使用“let”进行智能转换并不能解决问题,添加“ifs”进行空值检查也不能解决问题。
如何访问片段的“上下文”?在这里,我有代码检查片段是否已添加到活动中,但编译器仍将其视为“上下文?”不是“上下文”。
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
【问题讨论】:
试试requireContext()
而不是context
。
【参考方案1】:
您可以在 Fragment 类中使用requireContext()
或getActivity()
。
【讨论】:
【参考方案2】:使用activity!!
并从中获取上下文。
【讨论】:
以上是关于访问片段的上下文 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
在Javascript HTML中访问Django视图中的上下文变量(列表)[重复]