我正在从数据库中加载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
}
});
答案 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);