2013-06-06 6 views
0

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

<?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/selectedItem" /> 
<item 
    android:state_focused="true" 
    android:drawable="@color/GREEN" /> 
<item 
    android:drawable="@color/BLACK" /> 

и код деятельности

bookListView = (ListView) findViewById(R.id.list_books); 
/* selectedView = null; 
    bookListView.invalidate();*/ 
    bookListView.setSelector(R.drawable.list_selector); 
+0

Какой адаптер вы используете для этого ListView? –

+0

Я использую arrayAdapter . – user2431262

+0

применить событие клика по элементу, а затем изменить цвет фона. –

ответ

0

Вы можете сделать это следующим образом:

OnItemClickListener listViewOnItemClick = new OnItemClickListener() { 

     @Override 
     public void onItemClick(AdapterView<?> adapter, View arg1, int position, long id) { 
       // We store the current position of the selected item 
       mSelectedItem = position; 
       // We refresh a custom adapter 
       mAdapter.notifyDataSetChanged(); 
      } 
     } 
    }; 

В пользовательский адаптер переопределить Метод getView с:

 @Override 
     public View getView(int position, View convertView, ViewGroup parent) { 
      final View view = View.inflate(mContext, R.layout.item_list, null); 

      if (position == mSelectedItem) { 
       //Set active style 
      } 

      return view; 
     } 
Смежные вопросы