// 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() ;
}

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

相关文章:

  • 2019-11-11
  • 2022-01-01
  • 2022-12-23
  • 2022-12-23
  • 2021-05-20
  • 2021-09-11
  • 2021-05-27
猜你喜欢
  • 2021-11-15
  • 2021-11-21
  • 2022-12-23
  • 2019-09-16
  • 2021-09-01
  • 2021-09-24
  • 2022-03-02
相关资源
相似解决方案