просмотр списка со свойством селектора не изменяется должным образом при прокрутке

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

<ListView
        android:id="@+id/lvMenuItem"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10dp"
        android:layout_weight="1"
        android:cacheColorHint="@android:color/transparent"
        android:listSelector="@color/selected_color"
        android:dividerHeight="3dp" >
    </ListView>

lvMenu.setOnItemClickListener(new OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position,
                    long id) {
                //view.setSelected(true);
                Log.d("das","dasdas");
                if(lastSelected != null) {
                    lastSelected.setBackgroundColor(Color.TRANSPARENT);//(dr/*id of your unselected drawable*/);
                }
                lastSelected = (ViewGroup)view;
                lastSelected.setBackgroundResource(R.color.selected_color/*id of your selected drawable*/);
               // selectedRow=position; 
                String photo =datasource.getImagePathFromSubMenuId(SubMnuIdlst.get(position));
                Bitmap theImage= BitmapFactory.decodeFile(ofFilePath+"/"+photo);
                Bitmap bitmapScaled = Bitmap.createScaledBitmap(theImage, 300,250, true);
                drawable = new BitmapDrawable(bitmapScaled);
                imgMainItem.setBackgroundDrawable(drawable); 
                Imagename=ServerPath+"images/"+photo;
                String Desc=datasource.getSubMenuDescriptionFromSubMenuId(SubMenuid12);
                tvDesc.setText(Desc);
                selectionPos=position;
                selectedimgpath=photo;
                menuAdapter.notifyDataSetChanged();
                Log.d("SelPos",""+selectionPos);
            }
        }); 

Левая сторона изображения — это список


person hemant    schedule 23.07.2013    source источник
comment
Может ли кто-нибудь помочь мне с этим.   -  person hemant    schedule 25.07.2013


Ответы (1)


Вы должны отслеживать позицию lastSelected, а в onItemClickListener listView отменить выбор позиции lastSelected и выбрать текущую.. что-то вроде этого

ListView myListView = (ListView)findViewById(/* id of listView */);
ViewGroup lastSelected = null;
myListView.setOnItemClickListener(new onItemClickListener(
@Override
onItemClick(AdapterView arg0, View childView, int pos) {
    if(lastSelected != null) {
        lastSelected.setBackgroundDrawable(/*id of your unselected drawable*/);
    }
    lastSelected = (ViewGroup)childView;
    lastSelected.setBackgroundDrawable(/*id of your selected drawable*/);
    }
 ));
person Abhishek Shukla    schedule 23.07.2013
comment
Извините, это lastSelected - person Abhishek Shukla; 23.07.2013
comment
-Абхишек Шукла, я удалил свойство селектора из моего xml. когда я впервые нажимаю на любой индекс, он работает, но как только я нажимаю на следующий индекс, ничего не выбирается - person hemant; 23.07.2013
comment
setBackgroundResource я использую - person hemant; 23.07.2013
comment
Чувак, ты устанавливаешь цвета, а не рисунки. - person Abhishek Shukla; 23.07.2013
comment
– Абхишек Шукла, не могли бы вы дать мне образец рисунка? - person hemant; 23.07.2013
comment
Вы можете установить цвет следующим образом: view.setBackgroundColor(Color.parse(/* значение цвета*/)); - person Abhishek Shukla; 23.07.2013
comment
Спасибо, чувак, ты сделал мой день - person hemant; 23.07.2013
comment
- Абхишек Шукла, есть проблема с этим, когда я прокручиваю список, снова выбирается новое значение индекса, чего не должно происходить. - person hemant; 23.07.2013
comment
Извините, я не понял вашей точки зрения. Может ли ваш запрос вращаться вокруг viewHolder? - person Abhishek Shukla; 23.07.2013
comment
- Абхишек Шукла, когда я прокручиваю список... он индексирует позицию выбранного значения. - person hemant; 25.07.2013