代码之家  ›  专栏  ›  技术社区  ›  Jude Bobinihi

有没有一种方法可以像使用ListView或RecyclerView那样使用firebaseUI填充微调器项?

  •  0
  • Jude Bobinihi  · 技术社区  · 7 年前

    使用childevent侦听器可以从Firebase实时数据库填充微调器,但效果不如使用firebaseUI。

     Query query = FirebaseDatabase.getInstance().getReference("Labs");
    
            FirebaseListOptions<Labs> options = new FirebaseListOptions.Builder<Labs>().setQuery(query, Labs.class).build();
    
    
            FirebaseListAdapter<Labs> firebaseListAdapter = new FirebaseListAdapter<Labs>(options) {
                @Override
                protected void populateView(@NonNull View v, @NonNull Labs model, int position) {
    
                }
    
    
            };
    
            spinner.setAdapter(firebaseListAdapter);
    

    我只是不知道如何将我的模型对象与这里的视图绑定。

    2 回复  |  直到 7 年前
        1
  •  0
  •   Alex Mamo    7 年前

    代码中有两个问题。首先,出现以下错误:

    layout cannot be null
    

    因为您没有在应用程序中指定任何布局 populateView() TeexView 对于每个元素都将帮助您解决此问题。

    FirebaseListAdapter onStart() 方法:

    firebaseListAdapter.startListening();
    

    onStop() 方法:

    if(firebaseListAdapter != null) {
        firebaseListAdapter.stopListening();
    }
    
        2
  •  0
  •   Amir    7 年前

    您有两种选择: 一种是通过从查询中获得的数据列表初始化ArrayAdapter

    ArrayAdapter<String> adapter;
    adapter = new ArrayAdapter<String>(this,   android.R.layout.simple_spinner_item,querylistData);
    spinner.setAdapter(adapter);
    

    其次,您可以将数据绑定到textview,如下所示:

    FirebaseListAdapter<Labs> firebaseListAdapter = new FirebaseListAdapter<Labs>(this, Labs.class ,android.R.layout.simple_spinner_item, query) {
       protected void populateView(View v,Lab model, int position)
         { 
    
    
             ((TextView)v.findViewById(android.R.id.text1)).setText(model.getName());
    
         }
     };
     spinner.setAdapter(firebaseListAdapter);