2013-01-21 28 views
1

我有一個自定義適配器,用於填充ListView。我在ListView項目上設置了一個onItemClick(),該項目將顯示的片段更改爲其他內容。從自定義適配器獲取非視圖數據

我想將數據傳遞給ListView項目中的新片段,但我不想從可見視圖中獲取任何數據(如果我可以提供幫助)。自定義適配器分析JSONObject以獲取數據以填充ListView。那麼是否有一種方法可以訪問適配器類之外的底層數據?

更具體地說,我試圖將必要的底層ListView數據放入一個Bundle中,並將該Bundle從ListView項目傳遞給該活動,然後傳遞到新的片段中。

我也想從getView()方法得到它,所以我不必在適配器內的另一個自定義公共方法中複製代碼。

回答

3

如果您的自定義適配器重寫getItem(int position)方法,並且您應該返回適​​配器數據集中給定位置的對象,則可以這樣做。 之後,你可以通過調用此獲得使用上ListViewonItemSelected(AdapterView<?> parent, View view, int position, long id)的點擊數據:

parent.getAdapter().getItem(position) - >這是對應於你點擊的項目數據。 你只需要將返回的對象投射到任何你的課堂上,並做你想做的事情。 祝你好運,我希望它有幫助!

+0

好主意。我可以在getItem()方法中執行JSON解析,並將該Bundle傳遞給getView()。 – Wenger

+0

但不是已經在適配器中解析過的json?您應該使用管理類來執行解析並將解析對象的列表作爲其數據集傳遞到適配器中,或者不是適配器數據集的JSON值? – Cata

+0

我傳遞一個JSON數組到適配器並在getView()方法中解析它。 – Wenger

相關問題