簡體   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