从Firebase数据库中弹出微调器

时间:2017-02-27 08:14:51

标签: android firebase firebase-realtime-database spinner

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
   SectionHeaderView *view =   [tableView dequeueReusableHeaderFooterViewWithIdentifier:@"HEADER_REUSE_ID"];
   view.categoryLabel.text = [NSString stringWithFormat:@"section:%ld",(long)section];
   return view;
}

我的Firebase数据库:

enter image description here

我的构造函数类代码是

public class MainActivity extends AppCompatActivity {
DatabaseReference reference;
Spinner areaSpinner;
ArrayList<String> areas = new ArrayList<>();


@Override
protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);


    reference = FirebaseDatabase.getInstance().getReferenceFromUrl("https://vbspinner.firebaseio.com/Location");

    areaSpinner = (Spinner) findViewById(R.id.spinner);
    DatabaseReference mref = reference.child("areas");

    FirebaseListAdapter<String> firebaseListAdapter = new FirebaseListAdapter<String>(this, String.class, android.R.layout.simple_spinner_item, mref) {
        @Override
        protected void populateView(View v, String model, int position) {
            ((TextView)findViewById(android.R.id.text1)).setText(model);

        }
    };
    areaSpinner.setAdapter(firebaseListAdapter);
}

我希望我的微调器值来自Firebase数据库(public class VBSpinner extends Application { @Override public void onCreate() { super.onCreate(); if(!com.google.firebase.FirebaseApp.getApps(this).isEmpty()){ FirebaseDatabase.getInstance().setPersistenceEnabled(true); } KvpTn,依此类推)。我在哪里需要更改数据?

2 个答案:

答案 0 :(得分:0)

reference = FirebaseDatabase.getInstance()
     .getReferenceFromUrl("https://vbspinner.firebaseio.com/Location");

在上面的代码中,您将reference对象指向"Location"(我认为您正在尝试做什么。但在以下代码中:

DatabaseReference mref = reference.child("areas");

您创建另一个名为mref的引用(因为child("areas"))指向"https://vbspinner.firebaseio.com/Location/areas"。因此,如果您在mref中使用FirebaseListAdapter,则会返回null,因为".../Location/areas"中没有值。

您应该使用reference中的FirebaseListAdapter来使其发挥作用。

答案 1 :(得分:0)

也许我很晚才回答,但尝试使用我的方法将firebase文档项解析为spinner adapter

https://gist.github.com/majeytunio/9cc24a7edb06b2c2d3bbbb649ac9b602