环顾四周,似乎是使用数组初始化适配器。请参阅带有ArrayAdapter.remove的UnsupportedOperationException和无法在ListView中修改ArrayAdapter:UnsupportedOperationException
尝试使用
ArrayList而不是
array赞这样
ArrayList<Weather> weather_data = new ArrayList<Weather>()weather_data.add( new Weather(R.drawable.weather_cloudy, "Cloudy") );// continue for the rest of your Weather items.
如果你感到懒惰,您可以转换
array成
ArrayList这样
ArrayList<Weather> weatherList = new ArrayList<Weather>();weatherList.addAll(Arrays.asList(weather_data));
要
ArrayList在您的
WeatherAdapter类中完成到的转换,您将需要删除
Weather data[] =null;和的所有引用(例如,在构造函数内部),因为
ArrayAdapter它为您保留了数据,您可以使用getItem进行访问
因此,在您的
getView函数内部,您将更
Weather weather = data[position];改为
Weather weather =getItem(position);
更新 修改您的代码
private void setListViewAdapterToDate(int month, int year, int dv){ setListView(month, year, dv); if(summaryAdapter != null) { summaryAdapter.clear(); summaryAdapter.addAll( summaryList ); summaryAdapter.notifyDataSetChanged(); } else { summaryList.addAll(Arrays.asList(summary_data)); summaryAdapter = new SummaryAdapter(this.getActivity().getApplicationContext(), R.layout.listview_item_row, summaryList); } calendarSummary.setAdapter(summaryAdapter);}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)