尝试创建一个带有微调器的片段
Trying to create a fragment with a spinner in it
我想在我的片段中加入一个微调器。 ArrayAdapter 的构造函数具有对上下文的引用。在我的 activity 上,我会将其作为参数,即
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, list);
当我将这段代码复制到我的片段中时 class 它用红色下划线标出了错误的参数。
我怎样才能让它工作?
代码:-
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);
}
}
使用getContext()
代替this
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(getContext(),
android.R.layout.simple_spinner_item, list);
因为在 Fragment
中 this
不是 Context
,Fragment
class 没有继承自 Context
。所以使用父 Activity
的 Context
您正在 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);
使用下面的代码创建适配器,看看它是否有效。
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
我想在我的片段中加入一个微调器。 ArrayAdapter 的构造函数具有对上下文的引用。在我的 activity 上,我会将其作为参数,即
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, list);
当我将这段代码复制到我的片段中时 class 它用红色下划线标出了错误的参数。 我怎样才能让它工作?
代码:-
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);
}
}
使用getContext()
代替this
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(getContext(),
android.R.layout.simple_spinner_item, list);
因为在 Fragment
中 this
不是 Context
,Fragment
class 没有继承自 Context
。所以使用父 Activity
Context
您正在 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);
使用下面的代码创建适配器,看看它是否有效。
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