2012-07-04 120 views
1

我一直在瀏覽器中輸入下面的例子:定製的Android的ListView項目使用自定義ArrayAdapter

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

這是一個定製的Android 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();

我試了很多東西,但不管理它。

+0

它不是Android的問題,而是你的Java概念的問題。 –

+0

你應該閱讀一個Json解析器[**教程**](http://www.androidhive.info/2012/01/android-json-parsing-tutorial/)。 'youservice.GetWeatherData();'是簡單的函數爲你的適配器返回正確的格式輸入數據。在你的情況下,它返回一個'Weather'數組。 「動態」遠非簡單的答案。提供輸入數據的方式太多了。 –

回答

0

例子很好。當你將你的數組傳遞給你的自定義列表視圖適配器時。

private ListView mCustomListView; 

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

適配器將不得不做其餘。 如果你想要一個youservice.GetWeatherData()的實現,你需要把你的問題分成更小的塊。例如: - 如何創建REST Web服務, - 如何建立http連接併發送「獲取」請求, - 如何解析響應流?

編輯1

你不需要陣列中更換數據,讀的Json創建新的數組並把它傳遞給適配器。

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

//並從上方

CustomListViewAdapter適配器=新CustomListViewAdapter(上下文,weather_data); ....

+0

Tnx的答案,但我認爲你不明白我的問題。 我需要用通過Json從網上獲得的數據來替換每個新天氣(R.drawable.weather_cloudy,「Cloudy」)等等。 因此,必須刪除所有固定設置並填充動態內容。 –

+0

天氣weather_data [] =新天氣[] { here動態每個新天氣() } –

3

我只是找到了一個方法:

Weather weather_data[] = new Weather[6] ; 

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

幫我解決,謝謝 –

相關問題