2013-01-21 27 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

相关问题