2013-11-12 4 views
0

привет я получил странный вопрос я хочу выделить выбранный элемент в ListViewВыделите выбранный элемент

Heres мои файлы XML

selected.xml

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:state_pressed="true" android:drawable="@color/header" /> 
<item android:state_focused="true" android:drawable="@color/selected" /> 
</selector> 

listitem_background.xml

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:state_selected="true" android:drawable="@color/android:transparent" /> 
<item android:drawable="@drawable/selector" /> 
</selector> 

Активность, которая содержит список ListVie ж

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:layout_marginBottom="2dp" 
android:background="@drawable/listitem_background" > 

... 

<ListView 
    android:id="@+id/carsList" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_above="@id/carConfirmBtn" 
    android:layout_below="@id/carSelect" 
    android:paddingLeft="@dimen/small" 
    android:paddingRight="@dimen/small" 
    android:listSelector="@drawable/selector" /> 

</RelativeLayout> 

и, наконец, фрагмент кода, которые определяют, что

carsList.setChoiceMode(ListView.CHOICE_MODE_SINGLE); 
carsList.setOnItemClickListener(new OnItemClickListener() { 
@Override 
public void onItemClick(AdapterView<?> arg0, View arg1, int pos, 
       long arg3) { 
    carsList.setSelection(pos); 
} 
}); 

Просьба помочь

+0

можно удать изображение, которое вы хотите отобразить ... –

+0

попробуйте удалить 'android: listSelector =" @ drawable/selector "' из 'ListView' .. –

+0

Я обновляю вопрос, чтобы это было просто, что я имею в виду :) – Mariusz

ответ

0

на ваш взгляд ПОЛУЧИТЬ, прежде чем вернуться вид, добавьте этот код: - Независимо от строки вы хотите, чтобы выделить , измените оператор if. Перевод выделяет выбранную строку в течение 5 секунд (вы можете ее изменить), и цвета медленно исчезают до белого. проверить XML

  if(position == 0){ 
       viewHolderThubnail.relImage.setBackgroundResource(R.drawable.translate); 
       TransitionDrawable transition = (TransitionDrawable) viewHolderThubnail.relImage.getBackground(); 
       transition.startTransition(1000); // 1000 is in milliseconds 
       highlightPosition =-1; 
      }else{ 
       /*TransitionDrawable transition = (TransitionDrawable) viewHolderThubnail.relImage.getBackground(); 
       transition.startTransition(1000);*/ 
       viewHolderThubnail.relImage.setBackgroundResource(R.color.white); 
      } 

translate.xml

<?xml version="1.0" encoding="UTF-8"?> 
    <transition xmlns:android="http://schemas.android.com/apk/res/android"> 
      <!-- The drawables used here can be solid colors, gradients, shapes, images, etc. --> 
      <item android:drawable="@drawable/new_state" /> 
      <item android:drawable="@drawable/original_state" /> 
    </transition> 

new_state.xml

<?xml version="1.0" encoding="UTF-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
      android:shape="rectangle"> 
    <solid android:color="#92BCE7"/> 
</shape> 

original_state.xml

<?xml version="1.0" encoding="UTF-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
      android:shape="rectangle"> 
    <solid android:color="#FFFFFF"/> 
</shape> 

relImage является строка, если ваш ListView вы хотите изюминка.

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