我一直在浏览以下示例:
http://www.ezzylearning.com/tutorial.aspx?tid=1763429
这是一个自定义安卓ListView
项目与Custom ArrayAdapter
。
所有静态都在工作,但我没有动态地得到它:
Weather weather_data[] = new Weather[]
{
new Weather(R.drawable.weather_cloudy, "Cloudy"),
new Weather(R.drawable.weather_showers, "Showers"),
new Weather(R.drawable.weather_snow, "Snow"),
new Weather(R.drawable.weather_storm, "Storm"),
new Weather(R.drawable.weather_sunny, "Sunny")
};
对于动态数据,它说:
Weather weather_data[] = youservice.GetWeatherData();
你能不能举个例子,如何实现
youservice.GetWeatherData();
我尝试了很多事情,但没有做到。
我刚刚找到了一种方法:
Weather weather_data[] = new Weather[6] ;
for (int i= 0; i < 6; i++){
weather_data[i] = new Weather("A","B");
}
例子很好。获取数组后,只需将其传递给自定义列表视图适配器即可。
private ListView mCustomListView;
CustomListViewAdapter adapter = new CustomListViewAdapter(context, weather_data);
mCustomListView.setAdapter(adapter);
mCustomListView.requestFocus();
适配器将不得不完成其余的工作。如果你想要一个实现你的服务。GetWeatherData() 你需要把你的问题分成更小的块。例如: - 如何创建 REST Web 服务, - 如何建立 http 连接并发送 "get" 请求, - 如何解析响应流?
编辑 1
您无需替换数组中的数据,请阅读 Json 创建新数组并将其传递给适配器。
List<WeatherItem> weatherList = getWeatherFromJson();
weather_data = new Weather[weatherList.size()];
weather_data = weatherList.toArray(weather_data );
从上面
CustomListViewAdapteradapter = new CustomListViewAdapter(context, weather_data); ....