2014-11-22 5 views
0

onItemSelectedListender 인터페이스를 작동시키는 방법을 연습 할 수 없습니다. 선택한 항목의 색상을 변경 한 다음 선택 취소하면 다시 변경하고 싶습니다. 나는 약간의 독서를했으며, onItemSelectedListener를 사용하여 비슷한 것을 할 수있었습니다.onItemSelectedListener를 사용하여보기의 색을 변경하는 방법

내 코드는 ... 당신이 선택한 항목의 추적과의 getView 방법에서 해당 항목의 배경을 변경

libraryGrid.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
     @Override 
     public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) { 

      //I want to change the color of the view that was just selected 
      view.setBackgroundColor(Color.GRAY); 
      adapterView.getSelectedView().setBackgroundColor(Color.YELLOW); 

     } 

     @Override 
     public void onNothingSelected(AdapterView<?> adapterView) { 
      //How do I access the view that was just unselected to change it's color? 
      adapterView.setBackgroundColor(Color.BLACK); 
     } 
    }); 

답변

0

..

이이 방법을 시도입니다

libraryGrid.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
     @Override 
     public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) { 

      mSelectedItem = position; 
       mAdapter.notifyDataSetChanged(); 


     } 

     @Override 
     public void onNothingSelected(AdapterView<?> adapterView) { 

     } 
    }); 

그리고 yout getView 메소드는 선택된 Item의 배경색을 설정합니다.

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

     if (position == mSelectedItem) { 
      //set Selected color as background on view 
     } 
     else{ 
      //set unSelected color as background on View 
     } 

     return view; 
    } 
+0

응답 해 주셔서 감사합니다. textViews의 gridView가 있습니다. TextView를 클릭하면 선택 항목으로 계산되지 않습니다. 따라서 제 경우에는 onItemSelectedListener가 아닌 onItemClickListener를 사용해야합니다.이 경우에는 내가 말한 것처럼 상태를 기록해야합니다. 환호 –

+0

도와 드리겠습니다. :) – iMDroid

관련 문제