【发布时间】:2021-08-30 12:17:46
【问题描述】:
我有片段,我正在使用 recyclerView,但是当我运行应用程序时出现错误“尝试调用虚拟方法'void androidx.recyclerview.widget.RecyclerView.setLayoutManager(androidx.recyclerview.widget.RecyclerView$LayoutManager)'在空对象引用上”
公共类 IncomeFragment 扩展了 Fragment {
private RecyclerView recyclerView;
private FirebaseRecyclerAdapter adapter;
private View v;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
// Inflate the layout for this fragment
v = inflater.inflate(R.layout.fragment_expense, container, false);
recyclerView = (RecyclerView) v.findViewById(R.id.recycler);
recyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
recyclerView.setHasFixedSize(true);
FirebaseAuth mAuth = FirebaseAuth.getInstance();
FirebaseUser user = mAuth.getCurrentUser();
assert user != null;
String uid = user.getUid();
Query query = FirebaseDatabase.getInstance().getReference().child("IncomeDatabase").child(uid);
FirebaseRecyclerOptions<Data> options = new FirebaseRecyclerOptions.Builder<Data>()
.setQuery(query, new SnapshotParser<Data>() {
@NonNull
@NotNull
@Override
public Data parseSnapshot(@NonNull @NotNull DataSnapshot snapshot) {
return new Data(Integer.parseInt(snapshot.child("amount").getValue().toString())
, snapshot.child("type").getValue().toString()
, snapshot.child("note").getValue().toString()
, snapshot.child("id").getValue().toString(),
snapshot.child("date").getValue().toString());
}
}).build();
adapter = new FirebaseRecyclerAdapter<Data, ViewHolder>(options) {
@NonNull
@NotNull
@Override
public ViewHolder onCreateViewHolder(@NonNull @NotNull ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext())
.inflate(R.layout.income_recycler_data, parent, false);
return new ViewHolder(v);
}
@Override
protected void onBindViewHolder(@NonNull @NotNull ViewHolder holder, int position, @NonNull @NotNull Data model) {
holder.setAmount(String.valueOf(model.getAmount()));
holder.setDate(model.getDate());
holder.setNote(model.getNote());
holder.setType(model.getType());
}
};
recyclerView.setAdapter(adapter);
return v;
}
}
【问题讨论】:
标签: android android-fragments firebase-realtime-database android-recyclerview