1

我一直在浏览以下示例:

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

我已经尝试了很多事情,但没有管理它。

4

2 回答 2

3

我刚刚找到了一种方法:

    Weather weather_data[] = new Weather[6] ;

    for (int  i= 0; i < 6; i++){
       weather_data[i] = new Weather("A","B");
    }
于 2012-11-22T04:39:43.207 回答
0

例子很好。当你得到你的数组时,只需将它传递给你的自定义列表视图适配器。

private ListView mCustomListView;

CustomListViewAdapter adapter = new CustomListViewAdapter(context, weather_data);
mCustomListView.setAdapter(adapter);
mCustomListView.requestFocus();

适配器将不得不做其余的事情。如果你想要一个 youservice.GetWeatherData() 的实现,你需要将你的问题分成更小的块。例如: - 如何创建 REST Web 服务, - 如何建立 http 连接并发送“get”请求, - 如何解析响应流?

编辑 1

您不需要替换数组中的数据,读取 Json 创建新数组并将其传递给适配器。

List<WeatherItem> weatherList = getWeatherFromJson();
weather_data = new Weather[weatherList.size()];
weather_data = weatherList.toArray(weather_data );

// 从上面

CustomListViewAdapter 适配器 = new CustomListViewAdapter(context, weather_data); ……

于 2012-07-04T14:07:54.377 回答