(글에 이미지 올라가는게 안되서 첨부파일에 넣어놨습니다)

먼저 증상을 말씀드리자면 ListView에 나온 아이템을 눌렀을 때 글자색이 변하는 건데, 스크롤링 하다보면 누르지도 않은 녀석들이 함께 색이 변합니다.
ListView에 커스텀어댑터를 만들어서 아래와 같은 형태의 아이템들을 추가시켜주었습니다. 흔한 프레임인 이미지 옆에 텍스트 들어가는 겁니다.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content" android:orientation="vertical">
<ListView android:id="@+id/ListView01" android:layout_width="fill_parent" android:layout_height="fill_parent"></ListView>
</LinearLayout>
 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content" android:orientation="vertical">
<ListView android:id="@+id/ListView01" android:layout_width="fill_parent" android:layout_height="fill_parent"></ListView>
</LinearLayout>




 

아래와 같이 어댑터를 BaseAdapter를 상속받아 만들었습니다.
public class FileListAdapter extends BaseAdapter{
 
       …..
 
       public View getView(int position, View convertView, ViewGroup parent) {
             final int pos = position;
             if(convertView == null){
                    convertView = inflater.inflate(layout,parent,false);
             }
             
             ImageView img = (ImageView)convertView.findViewById(R.id.ImageView01);
             img.setImageResource(list.get(position).icon);
             
             TextView txt = (TextView)convertView.findViewById(R.id.TextView01);
             txt.setText(list.get(position).name);
             
             convertView.setOnClickListener(new OnClickListener() {
                    public void onClick(View v) {
                        ((TextView)((LinearLayout)v).getChildAt(1)).setTextColor(Color.RED);
                    }
             });
             
             return convertView;
       }
       
}



이 리스트에 들어갈 아이템들을 수동으로 50개 만들어서 아래 코드처럼 ListView에 넣어주었습니다.

public class FileEditor extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.file_list);
        
        init();
    }
    
    public void init(){   
        ArrayList<FileItem> list = new ArrayList<FileItem>();
        for(int i=0 ; i<50 ; i++){
              FileItem fi = new FileItem(R.drawable.icon, "hoyoon"+Integer.toString(i));
              list.add(fi);
        }
 
        FileListAdapter adapter = new FileListAdapter(this,R.layout.file_item, list);
        ListView listView = (ListView)findViewById(com.android.hoyoon.R.id.ListView01);
        listView.setAdapter(adapter);
                
    }}



여기서  제가 hoyoon1를 한번 클릭했는데 hoyoon9 아이템도 빨간색으로 같이 변했습니다. 화면 스크롤을 위아래로 움직여보니 클릭하지도 않은 녀석들이 빨간색으로 변해있고, 스크롤 계속 왔다갔다하면 계속 바뀝니다;; (첨부이미지 참조)
  
 

물론 ListView의 OnItemClickListener도 해봤지만 마찬가지였습니다.
혹시 어뎁터 문제인가 해서 BaseAdapter를 ArrayAdapter로 변경해봤지만 마찬가지...

제가 원하는 기능은 리스트에서 클릭한 것들만 색깔이 변하는 것입니다. 마치 astro나 estrong의 다중선택 처럼 말입니다.
이 문제를 어떻게 해결해야할지 좀 도와주세요 ㅠㅠ

공지사항을 다 읽었음