0

私は過去数時間にわたってこれに対する回答を探していましたが、時間が限られており、私のチームの他のメンバーがプロジェクトのマイルストーンを完了できるように機能する必要があります。私はSpinnerを断片に実装しています。このスピナーは、Firebaseデータベースから取得した情報で埋められます。しかし、私はspeakerPick.setAdapter(sAdapter)でnullポインタ例外を取得し続けます。ここでアレイアダプタがnullを示していますが、セットアップは正しく表示されますか?

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

はLogCatです:あなたはいけない

 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) 
+0

をArrayListを定義する、またはnullポインタ例外で配列リストでありますあなたは? – 0X0nosugar

+0

logcatからエラーを追加 –

+0

謝罪、私はすぐに投稿して帰宅しなければならなかった。数字が表示されていなかったことに気付かなかった。私は質問を更新しました、特定の行があります。エラーはすぐにも表示されます。 –

答えて

0

は、配列リスト

sAdapter =新しいArrayAdapter <>(getActivity()、android.R.layout.simple_spinner_item、スピーカーが定義されています);

スピーカー

うーん...あなたは私たちがカウントするように期待していない...「エラー行が79である」スピーカーが文字列

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

助けてくれてありがとう、私のlogcatは間違った行のエラーを指していました。私はすぐにインスタンシエーションを行いました。ヌルポインタを押しつぶしてしまいました。私もfirebaseコールを修正する必要がありました。それは有り難いです。 –

関連する問題