java - 它不会从 Fragment Activity ('FragmentOne' 上的 Firebase 加载,这是明确的,也不应该如此)

标签 java android firebase firebase-realtime-database

我在 Fragment 上创建了一个 Recycler View,将其与 Firebase 连接,但它不会在 Activity 上显示任何内容,也不会从 Firebase 加载。我验证了代码和过程一千次,我真的不知道该怎么办,也许是我的代码或连接有问题..

fragment 类:

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 类,其中包含 fragment :

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;

关于java - 它不会从 Fragment Activity ('FragmentOne' 上的 Firebase 加载,这是明确的,也不应该如此),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57349642/

相关文章:

android - 数据狗朗姆酒 : Is it possible to include HTTP request body in resource logging?

javascript - 如何解决重新渲染次数过多的问题。 React限制渲染次数以防止无限循环

Firebase 托管 : We couldn't verify your domain example. com。请检查您的设置,然后再试一次

node.js - 为什么我在云函数中使用不同的 Node 运行时版本?

android - 使用 Viewpager 强制关闭

java - key1 无法解析为变量?

java - Spring WebClient获取请求返回 "Connection refused: localhost/"

java - 复制数组 Java

java - 用于商家网站的 api,用于为我们的用户提供交易信用

java - 为什么 ListIterator 为 LinkedList 中的元素提供索引?