2012-04-24 4 views
1

<CheckedTextView android:id="@+id/choice_item" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:text="CheckedTextView" 
    android:clickable="true" 
    android:focusable="true" 
    android:gravity="center_vertical" 
    android:checkMark="?android:attr/listChoiceIndicatorMultiple" 
    android:textSize="@dimen/text_size_medium"/> 

Флажок не будет переключен.

  • Если я реализовать onClickListener как это в списке adapter:

((CheckedTextView) convertView.findViewById(R.id.dp_quiz_answer_choice_item)).setOnClickListener(new OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     ((CheckedTextView) v).toggle(); 
    } 
}); 

SINGLE_CHOICE режим получает инвалидов (любое количество флажков может быть включен).

  • Если я реализую setOnItemClickListener в виде списка, этот флажок не будет переключен.

mChoiceList.setOnItemClickListener(new OnItemClickListener() { 
    @Override 
    public void onItemClick(AdapterView<?> parent, View view, int item, 
        long id) { 
     mChoiceList.setItemChecked(item, true); 
    } 
}); 

Есть ли способ, чтобы иметь собственный макет для SINGLE_CHOICE режима ListView?

ответ

0

Для меня это было странно для меня, после многих других экспериментов я узнал, что для меня работало idCheckedTextView, аналогичное используемому в android.R.layout.simple_list_item_single_choice. Идентификатор - @android:id/text1.

1

Вы используете ?android:attr/listChoiceIndicatorMultiple, где она должна быть ?android:attr/listChoiceIndicatorSingle для SINGLE_CHOICE