android - 片段不显示 RecyclerView
问题描述
所以,我主要看了一些关于如何做 RecyclerView 的教程。我调整了代码以满足我的需要。但是当我尝试运行它时,RecyclerView 没有显示在片段上。我的猜测是问题出在适配器和查看器部分,因为我还不确定如何实现它。谁能帮我?
片段.java
public class JobListFragment extends Fragment {
RecyclerView mRecyclerView;
FirebaseDatabase firebaseDatabase;
DatabaseReference databaseReference;
public JobListFragment(){
}
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
((MainHomeActivity)getActivity()).setActionBarTitle("Job List");
View view = inflater.inflate(R.layout.fragment_job_list, container, false);
firebaseDatabase = FirebaseDatabase.getInstance();
databaseReference = firebaseDatabase.getReference().child("Data");
mRecyclerView = view.findViewById(R.id.recycleView);
mRecyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
mRecyclerView.setHasFixedSize(true);
return view;
}
@Override
public void onStart() {
super.onStart();
FirebaseRecyclerOptions<Model> options =
new FirebaseRecyclerOptions.Builder<Model>()
.setQuery(databaseReference, Model.class).build();
FirebaseRecyclerAdapter adapter = new FirebaseRecyclerAdapter<Model, ViewHolder>(options) {
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View view = LayoutInflater.from(viewGroup.getContext())
.inflate(R.layout.row, viewGroup, false);
return new ViewHolder(view);
}
@Override
protected void onBindViewHolder(@NonNull ViewHolder holder, int position, @NonNull Model model) {
holder.setDetails(model.getTitlept(), model.getDescpt(), model.getImagept());
}
};
mRecyclerView.setAdapter(adapter);
}
}
ViewHolder.java
public class ViewHolder extends RecyclerView.ViewHolder {
View mView;
public ViewHolder(View itemView){
super(itemView);
mView = itemView;
}
public void setDetails(String title, String description, String image){
TextView mTitleTv = mView.findViewById(R.id.rTitleTv);
TextView mDescTv = mView.findViewById(R.id.rDescIv);
ImageView mImageIv = mView.findViewById(R.id.rImageIv);
mTitleTv.setText(title);
mDescTv.setText(description);
Picasso.get().load(image).into(mImageIv);
}
}
模型.java
public class Model {
String titlept, imagept, descpt;
public Model(){}
public String getTitlept() {
return titlept;
}
public void setTitlept(String titlept) {
this.titlept = titlept;
}
public String getImagept() {
return imagept;
}
public void setImagept(String imagept) {
this.imagept = imagept;
}
public String getDescpt() {
return descpt;
}
public void setDescpt(String descpt) {
this.descpt = descpt;
}
}
解决方案
你能把问题写得更清楚一点吗?图片不显示?@AdhityoPutro
推荐阅读
- python - 如何填充等高线图掩码并将数据保留在等高线内并将其余部分涂黑
- javascript - 无法遍历 Javascript 对象
- jsp - 如何在 JSP 页面中实现 OWASP CSRF Guard 3.1.0
- oracle - 获取一个月内的销售额
- vb.net - 在 vb.net 项目中,如何检查 SQL 连接是否仍然可用并结束所有处理?
- python - 如果列表值还不是字典键,则从列表中添加字典键
- python - 我不知道为什么列被更改(原点:'a','b','c'→to_csv:“a,b,c”)
- ios - tableview 控制器上的可点击链接
- android - 如何根据 Firebase 实时数据库中的多个随机 ID 从节点中检索和组合数据?
- pagespeed-insights - 为什么我的 Page Speed Insights 分数上没有数字?