我正在尝试在我的片段中放置一个微调器。 ArrayAdapter的构造函数具有对上下文的引用。在我的活动中,我会把它作为参数,即
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, list);
当我将这段代码复制到我的片段类中时,它用红色加下划线以获得错误的参数。 我怎样才能让它发挥作用?
守则: -
void setUpSpinner()
{
Spinner spinner2;
spinner2 = (Spinner) myView.findViewById(R.id.spinner2);
List<String> list = new ArrayList<String>();
list.add("list 1");
list.add("list 2");
list.add("list 3");
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, list);
dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner2.setAdapter(dataAdapter);
}
}
答案 0 :(得分:0)
使用getContext()
代替this
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(getContext(),
android.R.layout.simple_spinner_item, list);
由于Fragment
this
不是Context
,Fragment
类不会从Context
继承。因此,请使用父Context
Activity
答案 1 :(得分:0)
你在ArrayAdapter中编写this
这是一个片段,但它需要一个上下文
<强> Your Code
强>: -
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this/*Over Here*/,
android.R.layout.simple_spinner_item, list);
<强> Correct Code
强>: -
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(getActivity().getApplicationContext(),
android.R.layout.simple_spinner_item, list);
答案 2 :(得分:0)
使用以下代码创建适配器并查看它是否有效。
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(activityContext,
R.array.planets_array, android.R.layout.simple_spinner_item);
使用此参考:https://developer.android.com/guide/topics/ui/controls/spinner