2016-08-09 59 views
1

我試圖使用firebaseRecyclerAdapter從firebase中獲取數據。但我無法將Firebase數據庫中的所有數據填充到RecyclerView中。 數據庫如下:無法使用FirebaseRecyclerAdapter加載多個行

Firebase Database

我得到的輸出只能從 「QQQ」 行

rvlist類:

public class rvlist { 
String name, propellant; 

public rvlist() { 
} 

public rvlist(String name, String propellant) { 
    this.name = name; 
    this.propellant = propellant; 
} 

public String getName() { 
    return name; 
} 

public String getPropellant() { 
    return propellant; 
    } 
} 

MyViewHolder:

public class MyViewHolder extends RecyclerView.ViewHolder { 
View mView; 

public MyViewHolder(View itemView) { 
    super(itemView); 
    mView = itemView; 
} 

public void setName(String name) { 
    TextView field = (TextView) mView.findViewById(R.id.a); 
    field.setText(name); 
} 

public void setPropellant(String text) { 
    TextView field = (TextView) mView.findViewById(R.id.b); 
    field.setText(text); 
    } 
} 

MainActivity:

public class MainActivity extends AppCompatActivity { 

DatabaseReference mRef; 
RecyclerView rv; 
ProgressBar pb; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    setContentView(R.layout.activity_main); 
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
    setSupportActionBar(toolbar); 

    pb = (ProgressBar)findViewById(R.id.pb); 
    pb.setVisibility(View.VISIBLE); 
    rv = (RecyclerView) findViewById(R.id.rvv); 
    rv.setLayoutManager(new LinearLayoutManager(this)); 

    mRef = FirebaseDatabase.getInstance().getReference().child("table"); 
} 

@Override 
protected void onStart() { 
    super.onStart(); 

    FirebaseRecyclerAdapter<rvlist, MyViewHolder> recyclerAdapter = new FirebaseRecyclerAdapter<rvlist, MyViewHolder> 
      (rvlist.class, R.layout.model, MyViewHolder.class, mRef) { 
     @Override 
     public void populateViewHolder(MyViewHolder itemsViewHolder, rvlist items, int position) { 
      pb.setVisibility(View.GONE); 
      itemsViewHolder.setName(items.getName()); 
      itemsViewHolder.setPropellant(items.getPropellant()); 
     } 
    }; 
    rv.setAdapter(recyclerAdapter); 
    } 
} 
+0

,問題是......? [問] – xenteros

+0

您是否找到了解決方案?我遇到同樣的問題 –

+0

查看您的行佈局以查看回收站視圖。它的高度應該是wrap_content(或者如果有特定的話),而不是match_parent。 – Kaustubh

回答

0

確保您RecyclerView和適配器layout_height設置爲WRAP_CONTENT不match_parent

<android.support.v7.widget.RecyclerView 
     android:id="@+id/recv_location" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     app:layoutManager="LinearLayoutManager" 
     ...> 
</android.support.v7.widget.RecyclerView> 
相關問題