如何在Kotlin的片段中设置微调器中的addapter?

大家好,我正在尝试创建一个片段内的微调,但我在数组适配器中出现错误我不知道它变成了红色的下划线,除此之外没有错误当我尝试微调适配器在一个活动,但工作片段它得到错误请帮助修复它谢谢

这是我的FirstFragment.kt文件:

class FirstFragment : Fragment() { private var mListener: OnFragmentInteractionListener? = null override fun onCreateView(inflater: LayoutInflater?, container: ViewGroup?, savedInstanceState: Bundle?): View? { // Inflate the layout for this fragment return inflater!!.inflate(R.layout.fragment_first, container, false) } override fun onViewCreated(view: View?, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) /*Find the id of spinner*/ val spinner = lol /*set an adapter with strings array*/ spinner.adapter = ArrayAdapter(this, R.layout.support_simple_spinner_dropdown_item, resources.getStringArray(R.array.atoms)) as SpinnerAdapter? /*set click listener*/ spinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener { override fun onItemSelected(parent: AdapterView, view: View, position: Int, id: Long) { val num = when (spinner.selectedItem.toString()) { "H" -> editText.setText("1") "He" -> editText.setText("4") "C" -> editText.setText("12") "O" -> editText.setText("16") else -> editText.setText("") } } override fun onNothingSelected(parent: AdapterView) { /*Do something if nothing selected*/ } } button.setOnClickListener { if ( editText2.text.toString().length > 0 && editText.text.toString().length > 0) { val num2 = editText.text.toString().toDouble() val num1 = editText2.text.toString().toDouble() val num = num1/num2 textView.setText("$num moles") } else { textView.setText("Please Enter a correct value") } } } 

这是我的fragment_first.xml文件:

       

问题是在这一行

 spinner.adapter = ArrayAdapter(this, R.layout.support_simple_spinner_dropdown_item, resources.getStringArray(R.array.atoms)) as SpinnerAdapter 

这个词,引用一个上下文,一个片段不是一个上下文。 在活动中它的作用是因为一个activity可以是一个context 。 所以解决办法是:

将其替换为activity

 spinner.adapter = ArrayAdapter(activity, R.layout.support_simple_spinner_dropdown_item, resources.getStringArray(R.array.atoms))