有谁知道Firebase是否可以针对查询通知适配器。

拉斯穆斯·拉杰·约瑟夫森(Rasmus Rajje Josefsson)

我可以通知适配器更改查询吗?到目前为止,它什么都不做...有人吗?

05-28 17:04:07.358 15585-15674 / com.example.rasmusjosefsson.rjcar D / OpenGLRenderer:0x7ff46e405c00(ListPopupWindow $ DropDownListView)上的endAllStagingAnimators,句柄为0x7ff46f3d1b00

onCreate()

private DatabaseReference mUserRef;
private String mTravelTypeSelected;
private Query queryRefSelected;
private FirebaseRecyclerAdapter<MyWaypoint, LatLngViewHolder> mFirebaseRecyclerViewAdapter;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_list);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    getSupportActionBar().setDisplayShowTitleEnabled(false);

    //*************** TRAVEL SPINNER**************//
    mSpinnerTravelType = (Spinner) findViewById(R.id.spinner_nav);

    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
            R.array.traveltype_array, R.layout.spinner_item);
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

    mSpinnerTravelType.setAdapter(adapter);

    mSpinnerTravelType.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {

            if (position == 0) {
                queryRefSelected = mUserRef;
            } else if (position == 1) {
                queryRefSelected = mUserRef.orderByChild("travelType").equalTo("Work");
                mTravelTypeSelected = "Work";
                Log.i("TEST", position + " ");

            } else if (position == 2) {
                queryRefSelected = mUserRef.orderByChild("travelType").equalTo("Private");
                Log.i("TEST", position + " ");
            }
            mFirebaseRecyclerViewAdapter.notifyDataSetChanged();
        }

        @Override
        public void onNothingSelected(AdapterView<?> parent) {

        }
    });

    recyclerView = (RecyclerView) findViewById(R.id.card_recycler_view);
    recyclerView.setHasFixedSize(false);
    LinearLayoutManager manager = new LinearLayoutManager(this);
    manager.setReverseLayout(false);
    recyclerView.setLayoutManager(manager);
}

RecyclerViewAdapter

private void attachRecyclerViewAdapter() {

    mFirebaseRecyclerViewAdapter = new FirebaseRecyclerAdapter<MyWaypoint, LatLngViewHolder>(MyWaypoint.class, R.layout.list_item, LatLngViewHolder.class, queryRefSelected) {
        @Override
        protected void populateViewHolder(final LatLngViewHolder latLngViewHolder, MyWaypoint item, final int i) {

            Log.i("SELECTED INSIDE POP", queryRefSelected.toString());

            String locA = item.getOrigin();
            latLngViewHolder.locationA.setText(locA);

            String locB = item.getDestination();
            latLngViewHolder.locationB.setText(locB);

            String distance = item.getDistance();
            latLngViewHolder.distance.setText(distance);

           final String duration = item.getDuration();

        }
    };
    recyclerView.setAdapter(mFirebaseRecyclerViewAdapter);    
}

onStart

@Override
public void onStart() {
    super.onStart();
    FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
    if (user != null) {

        // User is signed in
        String mUserId = user.getUid();

        // String userUrl = Constants.FIREBASE_URL + "/users/" + mUserId + "/waypoints";
        String userUrl = "https://rjcar3.firebaseio.com/users/lP1K8Ik0zrhaXD6AR6C0x7ozi5g2/waypoints";
        mUserRef = FirebaseDatabase.getInstance().getReferenceFromUrl(userUrl);

        // Set standard query
        queryRefSelected = mUserRef;

        // attaching the adapter
        attachRecyclerViewAdapter();
    }
}
山姆·斯特恩

您正在调用mFirebaseRecyclerViewAdapter.notifyDataSetChanged(),这只会告诉RecyclerView刷新它已经拥有的视图。

如果要更改适配器的基础查询,则需要attachRecyclerViewAdapter()再次调用以使用new重新创建适配器Query如果这样做,请确保调用mFirebaseRecyclerViewAdapter.cleanup()旧适配器。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

有谁知道如何从 Acumatica 中的通用查询访问 MRP 详细查询结果?

有谁知道此例外与Firebase性能监控有关?

有谁知道 Discord.JS 是否有命令解析器

有谁知道如何在 Google 表格查询功能中使用选项子句?

有谁知道我在哪里可以找到旧版本的 TCDF?

有谁知道我可以使用的基于Python的网络爬虫?

有谁知道我在哪里可以找到psql 8.x?

有谁知道如何创建可以将用户消息存储在变量中的事件?

有谁知道 Spectrum Mobile 的 SMS 网关,我可以使用 SMTP 吗?

有谁知道无法对 Outlook .ost 文件进行碎片整理是否“正常”?

有谁知道NSISdl是否将更新为支持HTTPS?

有谁知道如何检查排列是否在英语词典中

有谁知道如何让SonarQube分析CoffeeScript?

有谁知道更好的位模方式?

有谁知道图形文字图表的名称?

有谁知道如何关闭MUnit Coverage分析?

有谁知道如何使用 JavaScript 禁用 SVG?

有谁知道如何排除重复的if / else结构?

有谁知道如何执行水平 xlookup

有谁知道这行代码是如何工作的?

有谁知道面向方面建模的工具

有谁知道如何返回矩阵中的素数?

有谁知道针对Symfony 3构建的应用程序的两因素身份验证API?

有谁知道在哪里可以找到适用于aws / codebuild / nodejs:10.1.0的DockerFIle?

有谁知道云运行是否支持http / 2流而不支持http1.1流?

有谁知道这段代码有什么问题?

有谁知道如何从具有公式的列中获取最后输入的值?

有谁知道此代码有什么问题吗?

有谁知道我如何编辑 ggMarginal 以在此处显示密度线