使用 Custom ArrayAdapter 自定义 Android ListView 项目



我一直在浏览以下示例:

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 );

从上面

CustomListViewAdapter

adapter = new CustomListViewAdapter(context, weather_data); ....

最新更新