[英]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.