我需要帮助。我查看了其他帖子并尝试做同样的事情,但所有解决方案都不起作用。我试图用动态数据制作微调器,但总是停止工作......
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_main, container,
false);
final List<String> list=new ArrayList<String>();
list.add("Item 1");
list.add("Item 2");
list.add("Item 3");
list.add("Item 4");
list.add("Item 5");
Spinner s = (Spinner) rootView.findViewById(R.id.spinner1);
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String(this.getActivity(), R.array.spinnerItems, list);
dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
//ArrayAdapter<?> adapter = ArrayAdapter.createFromResource(getActivity().getBaseContext(), R.array.spinnerItems, android.R.layout.simple_spinner_item);
s.setAdapter(dataAdapter);
return rootView;
}
请问,如何让它运行?
答案 0 :(得分:3)
试试这种方式
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(getActivity(),android.R.layout.simple_spinner_item, locations);
dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
s.setAdapter(dataAdapter);
并确保您的片段已成功附加到您的活动,以便getActivity()
不是NULL
。
答案 1 :(得分:0)
我相信,我们应该在getActivity()
之内或之后拨打onActivityCreated()
,之前它会返回null
。
因此,移动代码以绑定onActivityCreated()
中的微调器选项,看看会发生什么。
此外,如果您可以发布错误日志,它将有助于其他人提出好的解决方案。
希望它有所帮助。
答案 2 :(得分:0)
取代this.getActivity()
替换getActivity()
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(getActivity(),android.R.layout.simple_spinner_item, locations);