Firebase ListView搜索功能实现Android

时间:2019-01-30 07:11:14

标签: android firebase firebase-realtime-database android-search android-filterable

我在这里试图做的是,我已经使用populateView显示了一个列表视图,我想使用searchview对其进行过滤,但是我不确定如何做到这一点。任何帮助或建议都将是很棒的,因为我是Firebase和android的新手。我还附加了用于显示列表视图的代码。

MainMenu.java

public void makeItem ()
{
    lv = findViewById(R.id.listView);
    db = FirebaseDatabase.getInstance().getReferenceFromUrl("https://vsem-inventory.firebaseio.com/ItemList");
    FirebaseListOptions<ItemObject> options = new FirebaseListOptions.Builder<ItemObject>()
            .setLayout(R.layout.content_main_menu_list)
            .setQuery(db,ItemObject.class)
            .build();
    mAdapter = new FirebaseListAdapter<ItemObject>(options) {
        @Override
        protected void populateView(@NonNull View v, @NonNull ItemObject model, int position) {
            final TextView tvAmount = v.findViewById(R.id.amount);
            final TextView tvName = v.findViewById(R.id.name);
            final TextView tvSerial = v.findViewById(R.id.serialNo);
            final TextView tvSupplier = v.findViewById(R.id.supplierName);
            final ImageView more = v.findViewById(R.id.more);
            ImageView statusimg =  v.findViewById(R.id.status);
            Drawable paidIcon = v.getResources().getDrawable(R.drawable.succes);
            Drawable lateIcon = v.getResources().getDrawable(R.drawable.late);
            tvName.setText(model.getProductName());
            tvSerial.setText(model.getSerialNo());
            tvAmount.setText(model.getQuantity());
            tvSupplier.setText(model.getModel());
           final  String Remarks = model.getRemarks();
            final String cat = model.getCategory();
             if(model.getQuantity().equals("0"))
                statusimg.setImageDrawable(lateIcon);
            else
                statusimg.setImageDrawable(paidIcon);
            more.setOnClickListener(new View.OnClickListener()
            {
                @Override
                public void onClick(View v) {
                    String serialNo = tvSerial.getText().toString();
                    String itemName = tvName.getText().toString();
                    String quan = tvAmount.getText().toString();
                    String supplier = tvSupplier.getText().toString();
                    showMenu(itemName,more,serialNo,quan,supplier,cat,Remarks);
                }
            });
        }
    };
    lv.setAdapter(mAdapter);

}

0 个答案:

没有答案