1

次の例を参照しています。

http://www.ezzylearning.com/tutorial.aspx?tid=1763429

を使ったAndroidListViewアイテムのカスタマイズ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 アダプター = 新しい CustomListViewAdapter(context, weather_data); ....

于 2012-07-04T14:07:54.377 に答える