listview row안에 각각 프로그레스바를 넣었는데..
문제는 scroll을 하면 1번 position 에서 동작하는 프로그래스상태바가 
갑자기 8번에서도 같이 동작 합니다.

대체 원인을 모르겠네요..
고수분들 부탁 드립니다.

아래 소스 내용과 소스 파일 첨부 하겠습니다.



package test.list;

import java.util.ArrayList;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;
import android.widget.ListView;
import android.widget.ProgressBar;
import android.widget.TextView;
import android.widget.Toast;

public class ListActivity extends Activity {

ArrayList<String> list = new ArrayList<String>();
ProgressBar prog;
TextView test;
boolean isRun=false;
ListView listview;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        listview = (ListView)findViewById(R.id.listview);

        
        for(int i=0; i<10; i++){
String test = "no."+i;
list.add(test);
}
        listview.setAdapter(new progAdapter());
    listview.setOnItemClickListener(new OnItemClickListener() {
      @Override
      public void onItemClick(AdapterView<?> arg0, View v, int position, long arg3) {
      //Toast.makeText(getApplicationContext(), "Listview Position : " + position, Toast.LENGTH_SHORT).show();
     
      switch(position){
case 0 :
Toast.makeText(getApplicationContext(), "0", Toast.LENGTH_SHORT).show();
       prog = (ProgressBar)v.findViewById(R.id.prog);
  prog.setProgress(0);  
  progRun();  
  break;
 
case 1 :
Toast.makeText(getApplicationContext(), "1", Toast.LENGTH_SHORT).show();
prog = (ProgressBar)v.findViewById(R.id.prog);
  prog.setProgress(0);
  progRun();  
break;
case 2 :
Toast.makeText(getApplicationContext(), "2", Toast.LENGTH_SHORT).show();
prog = (ProgressBar)v.findViewById(R.id.prog);
  prog.setProgress(0);
  progRun();  
  break;
 
case 3 :

Toast.makeText(getApplicationContext(), "3", Toast.LENGTH_SHORT).show();
  prog.setProgress(0);  
  progRun();
break;
      }
       }
});        
    }
    
    @Override
protected void onResume() {
// TODO Auto-generated method stub
   
super.onResume();
}
    
    @Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
}

@Override
protected void onRestart() {
// TODO Auto-generated method stub
super.onRestart();
}

@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
}

public void progRun(){
Thread background=new Thread(new Runnable(){
            public void run(){
                try{
                    for(int i=0;i<20&&isRun;i++){
                        Thread.sleep(1000);
                        handler.sendMessage(handler.obtainMessage());
                    }
                }catch(Throwable t){
                }
            }
        });
isRun=true;
        background.start();
}
Handler handler=new Handler(){
        @Override
        public void handleMessage(Message msg){
            prog.incrementProgressBy(5);

        }

    };
    
    class progAdapter extends BaseAdapter{
    public progAdapter(){
    }
   
@Override
public int getCount() {
return list.size();
}

@Override
public Object getItem(int position) {
//Toast.makeText(getApplicationContext(), "getItem : " + position, Toast.LENGTH_SHORT).show();
return list.get(position);
}

@Override
public long getItemId(int position) {
//Toast.makeText(getApplicationContext(), "getId : " + position, Toast.LENGTH_SHORT).show();
return position;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
final Context context = parent.getContext();
if(convertView == null){
LayoutInflater li = LayoutInflater.from(context);
convertView = li.inflate(R.layout.listview, parent, false);
}
TextView title = (TextView)convertView.findViewById(R.id.title);
title.setText("listtest click "+list.get(position));
return convertView;
}
    }
    
    protected void onStop() {
    super.onStop();
    isRun=false;
    };
}



listview.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="80dip"
android:layout_margin="8dip">
<TextView 
android:id="@+id/title"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:textSize="18sp"
   android:text="listtest click "/>
  
<ProgressBar
android:id="@+id/prog"
   android:layout_width="fill_parent"
   android:layout_height="wrap_content"
   style="?android:attr/progressBarStyleHorizontal"
   />
</LinearLayout>

main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<ListView  
android:id="@+id/listview"
   android:layout_width="fill_parent" 
  android:layout_height="fill_parent"
   android:cacheColorHint="#00000000"
   android:paddingRight="5px"
   />
</LinearLayout>