zoukankan      html  css  js  c++  java
  • 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() ;
    }

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

  • 相关阅读:
    golang生成树状菜单
    golang自定义某种类型时的打印输出
    【转】搭建自己的邮件服务器
    【转】【VSCode】golang的调试配置launch.json
    【转】Nvidia GeForce MX250 Lower-End Dedicated Graphics
    【转】Alertmanager高可用
    【转】Prometheus 和 Alertmanager实战配置
    YAML格式的语法
    golang写一个占用大内存的程序
    [转]TDengine常用命令及SQL
  • 原文地址:https://www.cnblogs.com/java20130722/p/3207332.html
Copyright © 2011-2022 走看看