2016-08-09 5 views
1

Я пытаюсь извлечь данные из firebase, используя firebaseRecyclerAdapter. Но я не могу заполнить все данные из базы данных 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

И вопрос ...? [ask] – 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>