片段内的旋转器

问题描述 投票:1回答:2

我正在创建一个简单的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
        }
    });
}   }
android android-fragments spinner
2个回答
2
投票

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;
}

0
投票

你在初始化它之前访问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
        }
    });
}   }
© www.soinside.com 2019 - 2024. All rights reserved.