2011-02-23 42 views
0

我正在使用自定义的ListView,并且为每一行数据添加特定的ID以解决它并进一步处理它。有没有什么办法,如何在XML文件中设置Id,如@ + id/idImageView + i,其中我是i ++?有什么办法吗?Android - 动态使用

谢谢

回答

2

创建您自己的适配器并将其添加到ListView。适配器可以基于Adapter或它的子类。 根据需要重写getItemId()方法。

ArrayAdapter的简单示例,其中包含具有id属性的对象。

public class MySimpleAdapter extends ArrayAdapter<MySimpleObject> { 

    public MySimpleAdapter(Context context, int resource, int textViewResourceId, List<MySimpleObject> objects) { 
     super(context, resource, textViewResourceId, objects); 
    } 


    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     //here create or recycle your view 
    } 

    @Override 
    public long getItemId(int position) { 
     return getItem(position).id; 
    } 


    public static class MySimpleObject { 
     long id; 
     String text; 
    } 
} 

对于数组中的简单对象here is example

要使用字符串中的XML看here

+0

谢谢,我以为我已经设置它首先要事后能够获得这个项目的ID,对吗? – Waypoint 2011-02-23 10:14:52

+0

编辑我的答案。希望有帮助 – pawelzieba 2011-02-23 10:34:26

+0

如果有帮助,请投票。 – pawelzieba 2011-02-23 11:50:49

0

究竟是你想做些什么?为什么不能使用位置信息并将其映射到您的数据数组。在ListView中显示的行将被回收,这意味着如果您有1000行数据,则不会显示唯一的1000行。我猜想只有10个,或者可能更少,视图是独一无二的,每次向上或向下滚动时都会回收它们。所以你不能使用这些行的id来唯一地获取/识别你的数据。请参阅下面的文章。

http://android.amberfog.com/?p=296