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