欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

关于Android Spinner控件动态赋值,不显示的问题

程序员文章站 2022-05-26 09:53:38
...
List<SpinnerItem> _listSI=new ArrayList<SpinnerItem>();
SpinnerItem siqz=new SpinnerItem("1","前兆");
_listSI.add(siqz);
SpinnerItem sidy=new SpinnerItem("2","电源");
_listSI.add(sidy);
SpinnerItem sicz=new SpinnerItem("3","测震");
_listSI.add(sicz);
Spinner spType=(Spinner)findViewById(R.id.spType);
ArrayAdapter<SpinnerItem> Adapter = new ArrayAdapter<SpinnerItem>(getApplicationContext(),
        android.R.layout.simple_spinner_item, _listSI);
Adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spType.setAdapter(Adapter);

这样赋值后在选择下拉框中的内容后是不会显示的,查了很多资料都说异步加载的问题,我是把红色标点处改为当前的活动类就好了:

ArrayAdapter<SpinnerItem> Adapter = new ArrayAdapter<SpinnerItem>(TypeActivity.this, android.R.layout.simple_spinner_item, _listSI);

 

顺便记录下如何通过后台返回的值默认选中对应的项:

String value="测震";
SpinnerAdapter apsAdapter= spType.getAdapter(); //得到SpinnerAdapter对象
int k= apsAdapter.getCount();
for(int i=0;i<k;i++){
    if(value.equals(apsAdapter.getItem(i).toString())){
        spType.setSelection(i,true);// 默认选中项
        break;
    }
}