阵列适配器显示空,安装程序显示正确



在过去的几个小时里,我一直在寻找这个问题的答案,但时间有限,我需要获得这个功能,以便我的团队的另一个成员可以完成项目里程碑。我正在将微调器实现到片段中。然后,此微调器将填充从 Firebase 数据库中提取的信息。但是,我在扬声器选择.setAdapter(sAdapter)上不断收到空指针异常;

    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    final View view = inflater.inflate(R.layout.fragment_create__event, container, false);
    saveEvent = (Button) view.findViewById(R.id.btn_Save_Event);
    etTitle = (EditText) view.findViewById(R.id.edit_speakerName);
    etLocation = (EditText) view.findViewById(R.id.edit_Location);
    etWhen = (EditText) view.findViewById(R.id.edit_When);
    etDate = (EditText) view.findViewById(R.id.edit_Date);
    etDetails = (EditText) view.findViewById(R.id.edit_Details);
    mDatabase = FirebaseDatabase.getInstance().getReference();
    mRef = FirebaseDatabase.getInstance().getReference().child("Speakers");

    speakerPick.setOnItemSelectedListener(this);
    saveEvent.setOnClickListener(this);
    mRef.addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            for(DataSnapshot childrenSnapshot : dataSnapshot.getChildren()){
                String name = childrenSnapshot.child("name").getValue(String.class);
                String bio = childrenSnapshot.child("bio").getValue(String.class);
                String photo = childrenSnapshot.child("photoURL").getValue(String.class);
                Speaker newSpeaker = new Speaker(name, bio, photo);
                speakers = new ArrayList<Speaker>();
                speakers.add(newSpeaker);
            }
            speakerPick = (Spinner) view.findViewById(R.id.spinner_Speakers);
            sAdapter = new ArrayAdapter<>(getActivity(), android.R.layout.simple_spinner_item, speakers);
            sAdapter.setDropDownViewResource(android.R.layout.simple_spinner_item);
            speakerPick.setAdapter(sAdapter);
        }
        @Override
        public void onCancelled(DatabaseError databaseError) {
        }
    });

    return view;
}

这是日志猫:

        Process: bwastedsoftware.district_7570_conference, PID: 23860
                                                                                      java.lang.NullPointerException: Attempt to invoke interface method 'int java.util.List.size()' on a null object reference
                                                                                          at android.widget.ArrayAdapter.getCount(ArrayAdapter.java:337)
                                                                                          at android.widget.AbsSpinner.setAdapter(AbsSpinner.java:115)
                                                                                          at android.widget.Spinner.setAdapter(Spinner.java:508)
                                                                                          at android.support.v7.widget.AppCompatSpinner.setAdapter(AppCompatSpinner.java:389)
                                                                                          at bwastedsoftware.district_7570_conference.Create_EventFragment$1.onDataChange(Create_EventFragment.java:79)
                                                                                          at com.google.android.gms.internal.zzbmz.zza(Unknown Source)
                                                                                          at com.google.android.gms.internal.zzbnz.zzYj(Unknown Source)
                                                                                          at com.google.android.gms.internal.zzboc$1.run(Unknown Source)
                                                                                          at android.os.Handler.handleCallback(Handler.java:739)
                                                                                          at android.os.Handler.dispatchMessage(Handler.java:95)
                                                                                          at android.os.Looper.loop(Looper.java:148)
                                                                                          at android.app.ActivityThread.main(ActivityThread.java:5417)
                                                                                          at java.lang.reflect.Method.invoke(Native Method)
                                                                                          at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
                                                                                          at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

您尚未定义数组列表

sAdapter = new ArrayAdapter<>(getActivity(), android.R.layout.simple_spinner_item,演讲者);

扬声器是具有空指针异常的数组列表

定义扬声器数组列表字符串

     ArrayList<Speakers> speakers = new List<Speakers>();

最新更新