Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用自定义ArrayAdapter自定义Android ListView项_Android - Fatal编程技术网

使用自定义ArrayAdapter自定义Android ListView项

使用自定义ArrayAdapter自定义Android ListView项,android,Android,我浏览了以下示例: 这是一个定制的Android列表视图项目,带有定制阵列适配器。 一切都是静态的,但我不能动态地理解: Weather weather_data[] = new Weather[] { new Weather(R.drawable.weather_cloudy, "Cloudy"), new Weather(R.drawable.weather_showers, "Showers"), new Weather(R.dr

我浏览了以下示例:

这是一个定制的Android
列表视图
项目,带有
定制阵列适配器

一切都是静态的,但我不能动态地理解:

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


我已经尝试了很多东西,但不要尝试。

示例很好。获取阵列后,只需将其传递给自定义列表视图适配器

private ListView mCustomListView;

CustomListViewAdapter adapter = new CustomListViewAdapter(context, weather_data);
mCustomListView.setAdapter(adapter);
mCustomListView.requestFocus();
适配器必须完成其余的工作。 如果你想实现youservice.GetWeatherData(),你需要把你的问题分成小块。例如:-如何创建RESTWeb服务,-如何建立http连接并发送“get”请求,-如何解析响应流

编辑1

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

List<WeatherItem> weatherList = getWeatherFromJson();
weather_data = new Weather[weatherList.size()];
weather_data = weatherList.toArray(weather_data );
List weatherList=getWeatherFromJson();
weather_data=新天气[weatherList.size()];
天气数据=天气列表.toArray(天气数据);
//从上面

CustomListViewAdapter=新的CustomListViewAdapter(上下文、天气数据); ..

我刚找到一个方法:

    Weather weather_data[] = new Weather[6] ;

    for (int  i= 0; i < 6; i++){
       weather_data[i] = new Weather("A","B");
    }

Weather_data[]=新天气[6];
对于(int i=0;i<6;i++){
天气数据[i]=新天气(“A”、“B”);
}

Tnx的答案,但我想你不明白我的问题。我需要用通过Json从web上获取的数据替换每个新天气(R.drawable.Weather_cloudy,“cloudy”)等。因此,必须删除所有固定设置并填充动态内容。Weather Weather_data[]=new Weather[]{这里动态地显示每个new Weather()}这不是android问题,而是Java概念问题。您应该阅读Json解析器<代码>youservice.GetWeatherData()
是一个简单的函数,用于为适配器返回正确格式的输入数据。在您的例子中,它返回一个
天气
数组。动态的远远不是简单的答案。提供输入数据的方法太多了。