2013-07-09 2 views
0

Список, который я использовал, имеет пользовательский xml и адаптер. Я хочу получить отмеченные элементы из этого списка из любого места. Мой XML здесь:Как получить проверенные предметы из пользовательского адаптера?

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" > 

    <CheckBox 
     android:id="@+id/cb" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:paddingTop="15dp" 
     android:paddingBottom="30dp" 
     android:focusable="false" 
     android:focusableInTouchMode="false" /> 

    <TextView 
     android:id="@+id/text" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textSize="15sp" 
     android:textStyle="bold" 
     android:paddingTop="15dp" 
     android:paddingRight="15dp" 
     android:paddingLeft="50dp" 
     android:text="Item" /> 

    <TextView 
     android:id="@+id/text2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textSize="12sp" 
     android:paddingRight="15dp" 
     android:paddingBottom="15dp" 
     android:paddingLeft="50dp" 
     android:text="Subtitle" 
     android:layout_below="@+id/text" /> 

</RelativeLayout> 

Мой адаптер здесь:

private final List<Model> list; 
private final List<Model> list2; 
private final Activity context; 
boolean checkAll_flag = false; 
boolean checkItem_flag = false; 

public Adapter(Activity context, List<Model> list, List<Model> list2) { 
    super(context, R.layout.listview, list); 
    this.context = context; 
    this.list = list; 
    this.list2 = list2; 
} 

static class ViewHolder { 
    protected TextView text; 
    protected TextView text2; 
    protected CheckBox checkbox; 
} 

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 

    ViewHolder viewHolder = null; 
    if (convertView == null) { 
     LayoutInflater inflator = context.getLayoutInflater(); 
     convertView = inflator.inflate(R.layout.listview, null); 
     viewHolder = new ViewHolder(); 
     viewHolder.text = (TextView) convertView.findViewById(R.id.text); 
     viewHolder.text2 = (TextView) convertView.findViewById(R.id.text2); 
     viewHolder.checkbox = (CheckBox) convertView.findViewById(R.id.cb); 
     viewHolder.checkbox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { 

      @Override 
      public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 
       int getPosition = (Integer) buttonView.getTag(); 
       list.get(getPosition).sec(buttonView.isChecked()); 
      } 
     }); 
     convertView.setTag(viewHolder); 
     convertView.setTag(R.id.text, viewHolder.text); 
     convertView.setTag(R.id.text2, viewHolder.text2); 
     convertView.setTag(R.id.cb, viewHolder.checkbox); 
     } else { 
     viewHolder = (ViewHolder) convertView.getTag(); 
    } 

    viewHolder.checkbox.setTag(position); 

    viewHolder.text.setText(list.get(position).isimGetir()); 
    viewHolder.text2.setText(list2.get(position).isimGetir()); 
    viewHolder.checkbox.setChecked(list.get(position).secilimi()); 

    return convertView; 
} 

Моя цель состоит в том, что получение отмеченных элементов из метода, помещенной в основной деятельности. Однако я не могу уловить значения флажков из-за их обычаев.

ответ

0

Подход, который вы можете использовать, состоит в том, чтобы отслеживать отмеченные элементы в основном действии, переходя к основному действию с помощью намеренного или общедоступного метода, чтобы поддерживать их список. Добавлять и удалять по мере изменения состояния проверки. Вы можете отключить намерение или метод всякий раз, когда измененное значение изменяется или нагрузка в адаптере.

Смежные вопросы