从firebase中获取数据,在android中执行后屏幕显示空白



MainActivity:

public class MainActivity extends AppCompatActivity {
private RecyclerView mRecyclerView;
private FirebaseAdapter mAdapter;
private static final String TAG = "MainActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mRecyclerView = (RecyclerView)findViewById(R.id.recyclerview);
mRecyclerView.setLayoutManager(new LinearLayoutManager(this));
FirebaseRecyclerOptions<DataClass> options =
new FirebaseRecyclerOptions.Builder<DataClass>()
.setQuery(FirebaseDatabase.getInstance().getReference().child("Users"), DataClass.class)
.build();
mAdapter = new FirebaseAdapter(options);
mRecyclerView.setAdapter(mAdapter);
mRecyclerView.addItemDecoration(new DividerItemDecoration(this,DividerItemDecoration.VERTICAL));
}
@Override
protected void onStart() {
super.onStart();
mAdapter.startListening();
}
@Override
protected void onStop() {
super.onStop();
mAdapter.stopListening();
}
}

FirebaseAdapter

public class FirebaseAdapter extends FirebaseRecyclerAdapter<DataClass,FirebaseAdapter.MyviewHolder> {
private static final String TAG = "FirebaseAdapter";
public FirebaseAdapter(@NonNull FirebaseRecyclerOptions<DataClass> options) {
super(options);
}
@Override
protected void onBindViewHolder(@NonNull MyviewHolder holder, int position, @NonNull DataClass model) {
holder.name.setText(model.getName());
holder.age.setText(model.getAge());
Log.d(TAG, "onBindViewHolder: Now Bind method executing");
}
@NonNull
@Override
public MyviewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
LayoutInflater layoutInflater = LayoutInflater.from(parent.getContext());
View v=  layoutInflater.inflate(R.layout.row_represent,parent,false);
MyviewHolder v1 = new MyviewHolder(v);
Log.d(TAG, "onCreateViewHolder: Now on create method executing");
return v1;
}

public static class MyviewHolder extends RecyclerView.ViewHolder{
TextView name;
TextView age;
public MyviewHolder(@NonNull View itemView) {
super(itemView);
name = (TextView)itemView.findViewById(R.id.names);
age = (TextView) itemView.findViewById(R.id.age);
}
}
}

数据类

public class DataClass {
private  String name;
private String age;
public DataClass(){
}
public DataClass(String name, String age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public String getAge() {
return age;
}
}

doubt in this parts
public DataClass(String name, String age) {
this.name = name;
this.age = age;
}
protected void onBindViewHolder(@NonNull MyviewHolder holder, int position, @NonNull DataClass model) {
holder.name.setText(model.getName());
holder.age.setText(model.getAge());
Log.d(TAG, "onBindViewHolder: Now Bind method executing");
}
because showing me that constructor never used 

我没有得到任何错误,但我的屏幕仍然显示为空,实际上它显示的是空数据如何找到它,伙计们告诉我如何解决这个问题我知道我在这个代码的某个地方犯了一个小错误,请帮助我纠正它非常感谢。

替换此代码

来自

mRecyclerView.setLayoutManager(new LinearLayoutManager(this));

RecyclerView.LayoutManager layoutManager;
layoutManager = new LinearLayoutManager(this, RecyclerView.VERTICAL, false);
mRecyclerView.setLayoutManager(layoutManager);

希望这项工作。

firebase数据库中是否有任何消息或其为空?

你可以通过firebase添加一些消息,这样你就可以检查

相关内容

最新更新