2016-08-30 10 views
1

私のデータはFirebaseデータベースからのものです。 busNumspinnerに正常に移入しました。しかし、私の問題は、私がbusnumを選択しなければならないとき、何も私のspinnerに現れません。ここにいくつかのコードがあります。 List<String> busnum = new ArrayList<String>();スピナーの選択項目が動作しません(ANDROID)

busRef = new Firebase(Config.FIREBASE_URL_BUSNUMBER); 
    busRef.addListenerForSingleValueEvent(new ValueEventListener() { 
     @Override 
     public void onDataChange(DataSnapshot dataSnapshot) { 
      for (DataSnapshot postSnapshot : dataSnapshot.getChildren()) { 
       busnum.add(postSnapshot.child("busNum").getValue().toString()); 
      } 
     } 

     @Override 
     public void onCancelled(FirebaseError firebaseError) { 
      Toast.makeText(AddDriverActivity.this, "Failed to read data.... " +firebaseError.getMessage(), Toast.LENGTH_SHORT).show(); 
     } 
    }); 

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, busnum); 
    mSpinBusNum.setPrompt("Select bus number"); 
    mSpinBusNum.setAdapter(adapter); 

@Override 
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 
    busNum = parent.getItemAtPosition(position).toString(); 
} 

答えて

1

次のような項目DataChangeに後にアダプタを設定する必要があります。

//after onDataChange 
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, busnum); 
mSpinBusNum.setPrompt("Select bus number"); 
// Apply the adapter to the spinner 
mSpinBusNum.setAdapter(adapter);   
+0

busRef.addListenerForSingleValueEvent(新ValueEventListener(){@Override ます。public void OnDataChangeの(DataSnapshot dataSnapshot){ (DataSnapshotのために) busnum.add(postSnapshot.child( "busNum")。getValue()。toString()); } //ここにアダプタを追加します } –

+0

ありがとうございました!出来た!しかし、私は 'onDataChange'の' forループ 'の後にアダプタを設定しました。 とにかく、ありがとう! – tin

+0

**ありがとうございます** –

関連する問題