大家好,我试图在我的片段上制作一个简单的微调器,但我厌倦了在没有任何工作解决方案的情况下搜索互联网。这是我的代码
public class AddMedicament extends Fragment {
public AddMedicament() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_search_pharmacy, container, false);
Spinner spinner = (Spinner) view.findViewById(R.id.type_spinner);
ArrayList<String> categories = new ArrayList<String>();
categories.add("g");
categories.add("mg");
categories.add("ml");
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(getActivity().getApplicationContext(), android.R.layout.simple_spinner_item,categories);
dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(dataAdapter);
//}
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
String item = parent.getItemAtPosition(position).toString();
Toast.makeText(parent.getContext(), "Selected: " + item, Toast.LENGTH_LONG).show();
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
return view;
}
}
我仍然将nullPointExeption发送到spinner.setAdapter(dataAdapter);
修改 我发现这是一个愚蠢的错误,它在这里我使用了不同的布局
我正在使用它:
View view = inflater.inflate(R.layout.fragment_search_pharmacy, container, false);
它应该是R.id.type_spinner存在的布局
View view = inflater.inflate(R.layout.fragment_add_medicament, container, false);
答案 0 :(得分:0)
我认为问题出在这里
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(getActivity(),android.R.layout.simple_spinner_item,categories);
应该是
getActivity().getAppicationContext()
要为微调器创建适配器,您不需要应用程序的上下文。因此,即使您有一个扩展应用程序的类,TextView textView = new TextView(context);
textView.setText("Hello World");
也是错误的。
答案 1 :(得分:0)
我仍然将
spinner.setAdapter(dataAdapter);
发送到spinner
您在此初始化Spinner spinner = (Spinner) view.findViewById(R.id.type_spinner);
:
spinner
由于android:id="@+id/type_spinner"
为空,这意味着您使用了错误的ID。仔细检查您是否在fragment_search_pharmacy.xml
<?php
phpinfo();
?>