2014-04-27 4 views
0

SimpleAdapter을 사용하여 Listview을 생성했습니다. 클릭 할 때 행의 배경색을 검정색으로 변경하고 싶습니다. Listview에 하나의 행만있을 때 배경색이 검정색으로 설정되었습니다. 하지만 내가 첫 번째 행을 클릭하더라도 내 Listview에 둘 이상의 행이있을 때 마지막 행의 색이 검정색으로 바뀝니다. 아무도 이것에 어떤 해결책을 제안 할 수 있습니까? 다음과 같이 내 코드는 다음과 같습니다android에서 선택한 listview 행 색상을 변경하는 방법은 무엇입니까?

public class mycontacts extends Fragment { 
    @Override 
     public View onCreateView(LayoutInflater inflater, ViewGroup container, 
     Bundle savedInstanceState) { 
     final View view = inflater.inflate(R.layout.mycontacts_activity, container, 
      false); 
     SimpleAdapter k=new SimpleAdapter(getActivity(),val,R.layout.contact2,new String[]{"name","path","id"},new int[]{R.id.example_itemname,R.id.path,R.id.contactid}) 
    { 

      @Override 
      public View getView (int position, View convertView, ViewGroup parent) 
      { 

       final View v = super.getView(position, convertView, parent); 
       final RelativeLayout l=(RelativeLayout)v.findViewById(R.id.front); 
       swipy.setSwipeListViewListener(new BaseSwipeListViewListener(){ 

      @Override 
     public void onClickFrontView(int position) { 
     // TODO Auto-generated method stub 
     super.onClickFrontView(position); 
     l.setBackgroundColor(Color.BLACK); 
      } 
      }); 


       return v; 
      } 
    }; 
      swipy.setAdapter(k); 


    return view; 

      } 

답변

0

나는 귀하의 경우 ListView에 대한 사용자 지정 어댑터를 사용합니다. BaseAdapter 클래스를 확장하여 하나를 만들 수 있습니다. 당신은 getView() 방법의 모든보기에 OnClickListener을 asign basicaly 수있는이 튜토리얼

tutorial about custom adapter

에서보세요.

OnClickListener를 :

private class ItemClick implements OnClickListener{ 
    public void onClick(View v){ 
    v.setBackgroundColor(Color.BLACK); 
    } 
} 
관련 문제