访问自定义项列表中每个项的各种元素

时间:2012-05-29 20:52:12

标签: android android-listview

我在android中有一个自定义列表,这个列表有一个文本编辑器和每个元素的复选框,我想要一个方法来获取数据和每个元素的状态,并将它们保存在一个Movie对象数组中,电影是电影(字符串描述,布尔状态)

如何访问列表中每个元素的各个组件?

我的自定义ListAdapter是

    public class CustomAdapter extends ArrayAdapter<String> {

       private HashMap<Integer, Boolean> movieCollection =
                new HashMap<Integer, Boolean>();

       private String[] data;

       public CustomAdapter(Context context) {
          super(context, R.layout.movie_item, android.R.id.text1, context
                   .getResources().getStringArray(R.array.movies));

          data =
                   context.getResources().getStringArray(R.array.movie_thumbs);
       }

       public void toggleMovie(int position) {
          if (!isInCollection(position)) {
             movieCollection.put(position, true);
          } else {
             movieCollection.put(position, false);
          }
       }

       public boolean isInCollection(int position) {
          return movieCollection.get(position) == Boolean.TRUE;
       }

   @Override
   public View getView(int position, View convertView, ViewGroup parent) {
      View listItem = super.getView(position, convertView, parent);

      CheckBox checkMark =
               (CheckBox) listItem.findViewById(android.R.id.check_movie);
      checkMark.setChecked(isInCollection(position));

      EditText editText = (EditText) listItem.findViewById(R.id.movie_description;
      editText.setTag(position);
      String textUrl = this.data[position];
      new DownloadTask(position, editText).execute(editText);

      return listItem;
   }
}

如果有人不明白什么是麻烦: 我需要一种方法直接访问所描述列表项中的每个EditText和CheckBox。

1 个答案:

答案 0 :(得分:0)

也许你可以在每次编辑后保存数据,在适配器中有一个电影列表(或类似的),并将监听器设置为编辑文本和复选框。