Spinner不显示所选项目Android

时间:2016-10-05 19:02:59

标签: java android

我正在从数据库中加载JSON中的列表。我使用此列表设置了一个适配器并将其添加到我的Spinner中。当我点击微调器时,我可以看到添加的元素列表。当我点击其中一个元素时,我确实得到了带有值的Toast,但是一旦微调器关闭就不会显示。

我在我的Spinner上使用setSelection但似乎没有完成这项工作。

一如既往地感谢您的帮助。

ArrayAdapter适配器;

        adapter = new ArrayAdapter<String>(getApplicationContext(),
                android.R.layout.simple_spinner_item, brands);
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        marca.setAdapter(adapter);

        marca.post(new Runnable() {
            @Override
            public void run() {
                marca.setSelection(0, false);
            }
        });

        marca.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener()
        {

            @Override
            public void onItemSelected(AdapterView<?> arg0, View arg1,int position, long id) {
                // TODO Auto-generated method stub
                marca.setSelection(position);
                marcaMandar = brands.get(position);
                Toast.makeText(getBaseContext(), marcaMandar, Toast.LENGTH_SHORT).show();

            }

            @Override
            public void onNothingSelected(AdapterView<?> arg0) {
                // TODO Auto-generated method stub

            }

        });

2 个答案:

答案 0 :(得分:0)

你应该添加

adapter.notifyDataSetChanged();

这将刷新附加到适配器的UI控件以对其进行修改并显示所选项目。

如Android的参考文献中所述:

  

notifyDataSetChanged()

     

通知附属观察员   基础数据已更改,反映数据集的任何视图   刷新自己

答案 1 :(得分:0)

经过大量的试验和错误后,我才能使它工作。看起来需要更改默认布局类型并使其工作。非常感谢所有回答的人。

ArrayAdapter<String> adapter;
    adapter = new ArrayAdapter<String>(Preferencias.this, android.R.layout.simple_list_item_1, brands);
    adapter.notifyDataSetChanged();
    marca.setAdapter(adapter);