簡體   English   中英

使用Android中的Firebase篩選查詢並刷新回收者視圖

[英]Filter the query and refresh the recycler view using firebase in android

@Override
protected void onStart() {
    super.onStart();

    mAuth.addAuthStateListener(mAuthListener);

    FirebaseRecyclerAdapter<Product, ProductViewHolder> firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<Product, ProductViewHolder>(

            Product.class,
            R.layout.product_row,
            ProductViewHolder.class,
            mDatabase

    ) {
        @Override
        protected void populateViewHolder(ProductViewHolder viewHolder, Product model, int position) {

            Log.d(TAG, "loading view " + position);
            final String product_id = getRef(position).getKey();
            viewHolder.setTitle(model.getName());
            viewHolder.setDesc(model.getDesc());
            viewHolder.setImage(getApplicationContext(), model.getImage());
            viewHolder.setUsername(model.getUsername());

            viewHolder.mView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Intent productDetailIntent = new Intent();
                    productDetailIntent.setClass(MainActivity.this, ProductDetailActivity.class);
                    productDetailIntent.putExtra("product_id", product_id);
                    Log.d(TAG + " product_id", product_id);
                    startActivity(productDetailIntent);
                }
            });

            Log.d(TAG, "finish loading view");
        }
    };

    mProductList.setAdapter(firebaseRecyclerAdapter);
}

上面是我用來從Firebase實時數據庫中獲取數據的代碼。 如何更改查詢(代碼中的mDatabase)並刷新recyclerview來過濾數據? 如何設置新適配器? 請給我一些幫助。謝謝。

嘗試這個:

FirebaseRecyclerAdapter<Product, ProductViewHolder> firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<Product, ProductViewHolder>(

        Product.class,
        R.layout.product_row,
        ProductViewHolder.class,
        mDatabase.orderByChild("KeyName").equalTo("Value") //add this line 
)
 mProductList.setAdapter(firebaseRecyclerAdapter);
  firebaseRecyclerAdapter.notifyDataSetChanged();  // also add this line

在您的數據庫中設置查詢...

FirebaseRecyclerAdapter<Product, ProductViewHolder> firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<Product, ProductViewHolder>(

            Product.class,
            R.layout.product_row,
            ProductViewHolder.class,
            mDatabase.orderByChild("KeyName").equalTo("Value")

    )

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM