繁体   English   中英

微调框未显示所选项目Android

[英]Spinner not displaying the selected item Android

我正在从数据库的JSON加载列表。 我使用此列表设置了一个适配器,并将其添加到我的微调器中。 单击微调器时,我可以看到添加的元素列表。 当我单击其中一个元素时,我确实会获得带有该值的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

            }

        });

您应该添加

adapter.notifyDataSetChanged();

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

如Android参考中所述:

notifyDataSetChanged()

通知附加的观察者基础数据已经更改, 任何反映数据集的视图都应刷新自身

经过大量的反复试验,我能够使它正常工作。 似乎需要更改默认的布局类型并使它起作用。 非常感谢所有回答的人。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM