微调器上的选定项目不起作用(ANDROID) [英] selected item on spinner won't work (ANDROID)

查看:67
本文介绍了微调器上的选定项目不起作用(ANDROID)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的数据来自Firebase数据库.我成功地将busNum填充到了spinner.但是我的问题是,每当我要选择busnum时,我的spinner上都没有任何显示.这是一些代码. List<String> busnum = new ArrayList<String>();

My data comes from Firebase database. I successfully populated the busNumto the spinner. But my problem is whenever I got to select the busnum, nothing shows up on my spinner. Here are some of codes. List<String> busnum = new ArrayList<String>();

busRef =  new Firebase(Config.FIREBASE_URL_BUSNUMBER);
    busRef.addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            for (DataSnapshot postSnapshot : dataSnapshot.getChildren()) {
                busnum.add(postSnapshot.child("busNum").getValue().toString());
            }
        }

        @Override
        public void onCancelled(FirebaseError firebaseError) {
            Toast.makeText(AddDriverActivity.this, "Failed to read data.... " +firebaseError.getMessage(), Toast.LENGTH_SHORT).show();
        }
    });

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, busnum);
    mSpinBusNum.setPrompt("Select bus number");
    mSpinBusNum.setAdapter(adapter);

@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
    busNum = parent.getItemAtPosition(position).toString();
}

推荐答案

您必须在数据更改后设置适配器,如下所示:

You must set Adapter after on datachange like this:

//after onDataChange 
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, busnum);
mSpinBusNum.setPrompt("Select bus number");
// Apply the adapter to the spinner
mSpinBusNum.setAdapter(adapter);        

这篇关于微调器上的选定项目不起作用(ANDROID)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆