我正在创建一个简单的Android游戏应用程序,但我在片段中的spinner中遇到了一些问题。我尝试了一些解决方案,但我的应用程序崩溃有人能帮我吗?巨大的谢谢你。
public class SlotMachineFragmentOne extends Fragment {
Spinner dropdown;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.activity_slotmachine_fragment_one, container, false);
initspinnerfooter();
dropdown = rootView.findViewById(R.id.spinner);
return rootView;
}
private void initspinnerfooter() {
String[] items = new String[]{
"Choose apple", "Choose boy", " Choose cat", "Choose dog",
};
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_spinner_item, items);
dropdown.setAdapter(adapter);
dropdown.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
Log.v("item", (String) parent.getItemAtPosition(position));
((TextView) parent.getChildAt(0)).setTextColor(Color.WHITE);
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
// TODO Auto-generated method stub
}
});
} }
在initspinnerfooter();
之后打电话给dropdown = rootView.findViewById(R.id.spinner);
像这样:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.activity_slotmachine_fragment_one, container, false);
dropdown = rootView.findViewById(R.id.spinner);
initspinnerfooter();
return rootView;
}
你在初始化它之前访问dropdown
对象,这就是它扔NullPointerException
的原因
首先你初始化然后使用它
公共类SlotMachineFragmentOne扩展Fragment {
Spinner dropdown;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.activity_slotmachine_fragment_one, container, false);
dropdown = rootView.findViewById(R.id.spinner);
initspinnerfooter();
return rootView;
}
private void initspinnerfooter() {
String[] items = new String[]{
"Choose apple", "Choose boy", " Choose cat", "Choose dog",
};
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_spinner_item, items);
dropdown.setAdapter(adapter);
dropdown.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
Log.v("item", (String) parent.getItemAtPosition(position));
((TextView) parent.getChildAt(0)).setTextColor(Color.WHITE);
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
// TODO Auto-generated method stub
}
});
} }