2013-07-23 2 views
0

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

<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); 
      } 
     }); 

Left side of image is the listview

+0

Может кто-нибудь пожалуйста, помогите мне с этим. – hemant

ответ

2

Вы должны отслеживать 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*/); 
    } 
)); 
+0

Что последнее сообщение отправлено – hemant

+0

Извините, его lastSelected –

+0

-Abhishek Shukla Я удалил свойство selector из моего xml. когда я сначала нажимаю на любой индекс, он работает, но как только я нажимаю на следующий индекс, ничего не выбирается – hemant

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