2014-07-06 3 views
-1

어댑터 목록보기에서 행의 listview를 처음 클릭하면 작동하지 않지만 두 번째로 작동하면 행 배경색이 변경됩니다. 어떻게 잘 작동하는지 제안 해주십시오.android의 어댑터 목록보기에서 배경색을 변경하는 방법은 무엇입니까?

productList.setOnItemClickListener(new OnItemClickListener() { 

     //mOnDoubleTapListener = listener; 

     @Override 
     public void onItemClick(AdapterView<?> parent, View view,int position, long id) { 

      Log.d("Row", "Row:= "+row); 
      Log.d("View", "View:= "+view); 

      if(row != null) { 
       row.setBackgroundColor(Color.WHITE); 
      } 


      view.setBackgroundColor(Color.CYAN); 

      row = view; 
      }}); 

답변

3

사용이 방법 : -이 코드는 변경 폴리스

그냥 하나 개의 변수 호출 SELECTED_POSITION을 목록보기의 선택 항목의 색상을 도움이 될 것입니다 = -1 활동에; 유의 ListView에서 u는이 코드 다음

productList.setOnItemClickListener(new OnItemClickListener() { 


     @Override 
     public void onItemClick(AdapterView<?> parent, View view,int position, long id) { 

      SELECTED_POSITION =position; 
     } 
    }); 

방법이의 getView 호출 인 @Override 사용자 정의 어댑터 클래스를 구현하여 얻을 것이다 클릭 위치를 항목을 클릭

(...)

@Override 
public View getView(int position, View convertView, ViewGroup parent) 
{ 
    ViewHolder holder = null; 
    if (convertView == null) { 
     LayoutInflater vi = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     convertView = vi.inflate(R.layout.row_adptr, null); 
     holder = new ViewHolder(); 
     holder.text = (TextView) convertView 
       .findViewById(R.id.adapterText1); 
     holder.chkbox = (CheckBox) convertView 
       .findViewById(R.id.checkBox1); 
     holder.imageview = (ImageView) convertView 
       .findViewById(R.id.imageView1); 
     convertView.setTag(holder);   

    } else { 
     holder = (ViewHolder) convertView.getTag(); 
    } 

     // this is the code when selected item stay at one position 
     if(position ==SELECTED_POSITION) 
     { 
      // set your selected Item Color 
      convertView.setBackgroundColor(Color.WHITE); 
     } 
     else 
     { // set your unselected Item Color 
       convertView.setBackgroundColor(Color.CYAN); 
     } 

    ....Extra code of set value... 
} 
+0

당신은 'adapter.notifyDataSetChanged();'를 OnItemClickListener? –

관련 문제