0

Я использую ListView, который имеет в CheckedTextView. Чтобы изменить окно CheckedTextView (проверено/снято), я использую этот метод:Пользовательская графика в CheckedTextView в android

protected void onListItemClick(ListView l, View v, int position, long id) { 
     super.onListItemClick(l, v, position, id); 

    ... 

     SoundDialog.Builder alert; 
     v.performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY); 
     switch (soundPreference.getType()) { 
     case BOOLEAN: 
      CheckedTextView checkedTextView = (CheckedTextView) v; 

      if (checkedTextView.isChecked()){ 
       checkedTextView.setCheckMarkDrawable(R.drawable.ic_blue); 
      } else { 
       checkedTextView.setCheckMarkDrawable(R.drawable.ic_red); 
      } 

      boolean checked = !checkedTextView.isChecked(); 
      ((CheckedTextView) v).setChecked(checked); 

      ... 

Это работает, но есть проблема, метод выполняет в списке следует слушатель (onListItemClick (ListView l, View v, int position, long id) {...) При входе в деятельность, CheckedTextView имеет свое изображение по умолчанию, пока вы не нажмете на элемент и не выполните этот метод.

Как я могу реализовать этот метод в onCreate (if (checkedTextView.isChecked()) {...), если CheckedTextView создан внутри onListItemClick?

Я искал много, но не могу найти ответ.

Я ценю любую помощь

благодарит заранее.

ответ

1

Необходимо определить, должно ли CheckedTextView быть проверено или нет в методе getView() класса ListAdapter. Код в Listeners будет выполняться только тогда, когда это конкретное событие Listener генерируется до тех пор, пока код прослушивателя не будет выполнен, даже если вы пишете в методе onCreate().

и извините за мой английский .....

+0

Отлично! спасибо народу :) – Sergio76