Android spinner 动态添加时报错 java.lang.UnsupportedOperationException



// spinner Adapter
private ArrayAdapter<String>     spinnerAdapter   = null;
private Spinner                  detailSpinner;
private String[]   taskStatus = null;
private List<String> statuses = null;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setContentView(R.layout.spinner_notifydatachanged) ;
taskStatus = new String[]{"a","b","c"} ;

statuses = new ArrayList<String>() ;
statuses.add("a") ;
statuses.add("b") ;
statuses.add("c") ;
detailSpinner = (Spinner)this.findViewById(R.id.statusSel);
spinnerAdapter =new ArrayAdapter<String>(this,
    android.R.layout.simple_spinner_item,statuses ) ;

spinnerAdapter
    .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
detailSpinner.setAdapter(spinnerAdapter);
Button button = (Button)this.findViewById(R.id.button1) ;
button.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
taskStatus = null ;
taskStatus= new String[]{"a","b","c","d"} ;
//statuses.add("d") ;
statuses = new ArrayList<String>() ;
statuses.add("1") ;
statuses.add("2") ;
statuses.add("3") ;
statuses.add("4") ;
spinnerAdapter.notifyDataSetChanged() ;
}
}) ;

}


这样的结果:是Spinner 不会刷新的。spinnerAdapter.notifyDataSetChanged() ; 没有效果

原因:@Override
public void onClick(View v) {
taskStatus = null ;
taskStatus= new String[]{"a","b","c","d"} ;
//statuses.add("d") ;
statuses = new ArrayList<String>() ;
statuses.add("1") ;
statuses.add("2") ;
statuses.add("3") ;
statuses.add("4") ;
spinnerAdapter.notifyDataSetChanged() ;
}

红色字体的那就是原因。  这里不能初始化。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值