我想在我的Google Map类中制作微调器,这样我就可以改变像Google杂志,SATELLITE这样的googlemaps的视图。我在片段内的片段上创建了一个微调器。 当我声明arrayaddapter它继续显示"不幸的是,---已经停止"
public class GMaps extends Fragment {
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
View v = inflater.inflate(R.layout.popup_map, null, false);
sview = (Spinner)getActivity().findViewById(R.id.spinner1);
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.getActivity(), android.R.layout.simple_spinner_item, list);
dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
sview.setAdapter(dataAdapter);
// ..
我认为这是因为参数context = this.getActivity()
...我试过这个.getView(),getActivity(),v.getContext,没什么用。
答案 0 :(得分:1)
首先你应该改变这个
sview = (Spinner)getActivity().findViewById(R.id.spinner1);
到
sview = (Spinner)v.findViewById(R.id.spinner1);
它让你的Spinner view
属于你inflated layout view
。
然后尝试设置适配器:
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(getActivity().getApplicationContext(), android.R.layout.simple_spinner_item, list);
dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
sview.setAdapter(dataAdapter);
答案 1 :(得分:0)
//您的微调器位于popup_map.xml中,因此您需要执行
sview = (Spinner)getActivity().findViewById(R.id.spinner1);
而不是getActivity()
您需要使用View v
sview = (Spinner)v.findViewById(R.id.spinner1);