java - 它不会在 Fragment Activity 上从 Firebase 加载('FragmentOne' 很清楚,不应该)
问题描述
我在 Fragment 上创建了一个 Recycler View,将其与 Firebase 连接,但它不会在活动中显示任何内容,也不会从 Firebase 加载。我验证了代码和程序一千次,我真的没有知道该怎么做,也许这是我的代码或连接中的问题..
片段类:
public class FragmentUnu extends Fragment {
View v;
FirebaseDatabase mDatabase;
DatabaseReference mRef;
RecyclerView mRecycler;
RecyclerView.LayoutManager layoutManager;
FirebaseRecyclerAdapter < FragmentUnuModel, FragmentUnuViewHolder > adapter;
public FragmentUnu() {}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
super.onCreateView(inflater, container, savedInstanceState);
v = inflater.inflate(R.layout.unu_fragment, container, false);
mRecycler = (RecyclerView) v.findViewById(R.id.fragment_unu_recycler);
mRecycler.setHasFixedSize(true);
layoutManager = new LinearLayoutManager(getActivity());
mRecycler.setLayoutManager(layoutManager);
mDatabase = FirebaseDatabase.getInstance();
mRef = mDatabase.getReference("FragmentId");
FirebaseRecyclerOptions < FragmentUnuModel > options = new FirebaseRecyclerOptions.Builder < FragmentUnuModel > ()
.setQuery(mRef, FragmentUnuModel.class)
.build();
adapter = new FirebaseRecyclerAdapter < FragmentUnuModel, FragmentUnuViewHolder > (options) {
@NonNull
@Override
public FragmentUnuViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View itemView = LayoutInflater.from(parent.getContext())
.inflate(R.layout.unu_fragment_item, parent, false);
return new FragmentUnuViewHolder(itemView);
}
@Override
protected void onBindViewHolder(@NonNull FragmentUnuViewHolder fragmentUnuViewHolder, int i, @NonNull FragmentUnuModel fragmentUnuModel) {
fragmentUnuViewHolder.denumire.setText(fragmentUnuModel.getDenumire());
fragmentUnuViewHolder.descriere.setText(fragmentUnuModel.getDescriere());
fragmentUnuViewHolder.pret.setText(fragmentUnuModel.getPret());
Picasso.with(getActivity().getBaseContext()).load(fragmentUnuModel.getImagine()).into(fragmentUnuViewHolder.img);
}
};
return v;
}
@Override
public void onStart() {
super.onStart();
adapter.startListening();
mRecycler.setAdapter(adapter);
}
@Override
public void onStop() {
super.onStop();
adapter.stopListening();
}
}
这是我的带有片段的 MainActivity 类:
public class Food extends AppCompatActivity {
private TabLayout tabLayout;
private ViewPager viewPager;
private ViewPagerAdapter adapter;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.food_activity);
tabLayout = (TabLayout) findViewById(R.id.tabs);
viewPager = (ViewPager) findViewById(R.id.viewpager);
adapter = new ViewPagerAdapter(getSupportFragmentManager());
adapter.AddFragment(new FragmentUnu(), "Unu");
adapter.AddFragment(new FragmentDoi(), "Doi");
adapter.AddFragment(new FragmentTrei(), "Trei");
viewPager.setAdapter(adapter);
tabLayout.setupWithViewPager(viewPager);
}
}
我在调试器中没有任何错误
解决方案
您制作了适配器,但没有将其分配给 RecyclerView。致电mRecycler.setAdapter()
:
...
mRecycler.setAdapter(adapter);
return v;
推荐阅读
- python - 带有烧瓶的 rets-python 不能作为 json 返回
- javascript - 返回错误和抛出错误的区别
- oop - 可以用来自另一个聚合的不可变数据组成一个聚合吗?
- asp.net-core - 如何从 .net core 2.0 Web 应用程序的配置文件中获取 .net core 标准类库中的连接字符串?
- python - 如何在熊猫数据框中查找具有正值和负值的行
- c# - C#:如何在 EF .Where() 或 Select() 查询中引用动态对象属性?
- python - ValueError:检查输入时出错:预期 cu_dnnlstm_22_input 具有 3 个维度,但得到的数组具有形状 (2101, 17)
- html - 如何获取 Github Pages 自动颁发的 HTTPS 证书的私钥
- php - 使用带有标题的php强制下载时如何向用户发送消息
- text - Flutter的TextBaseline枚举中的字母和表意之间有什么区别