listview personalizado usando a classe arrayadapter no android

como selecionar o item de linha usando marca Tick como o iPhone no android? iam usando imageview em list_row.xml.quando clico no item da linha de lista, em seguida, mostro a imagem na imageview da linha.

if(getItem(position)!=null){
img.setvisibilty(View.Visible);}        
else{System.out.println("imagenull");}

iam usando isso, mas exibição de imagem na última linha só.por favor me ajude como selecionar o item usando a imagem tickmark.

public class DistanceArrayAdapter extends ArrayAdapter<Constant>{
public static String category,state,miles;
public ImageView img;
private Context context;
private int current = -1;
ArrayList<Constant> dataObject;

public DistanceArrayAdapter(Context context, int textViewResourceId,
ArrayList<Constant> dataObject) {
super(context, textViewResourceId, dataObject);
this.context=context;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
View rowView=convertView;
if(rowView==null){
LayoutInflater inflater = (LayoutInflater) context
            .getSystemService(Context.LAYOUT_INFLATER_SERVICE);

rowView = inflater.inflate(R.layout.category_row, parent, false);

}
    //TextView textView = (TextView) rowView.findViewById(R.id.text1);
TextView textView1 = (TextView) rowView.findViewById(R.id.text2);
    //textView.setText(""+getItem(position).id);
textView1.setText(""+getItem(position).caption);
img=(ImageView)rowView.findViewById(R.id.img);
img.setVisibility(View.GONE);
if(position%2==1)
{
rowView.setBackgroundResource(R.color.even_list);
}
else
    {
        rowView.setBackgroundResource(R.color.odd_list);
    }

rowView.setOnClickListener (new OnClickListener () {

        @Override
        public void onClick(View v) {

            if(img.getVisibility()==View.GONE)
            {
                img.setVisibility(View.VISIBLE);
                System.out.println("1");
            }
if(img.getVisibility()==View.VISIBLE){
img.setVisibility(View.GONE);
System.out.println("12");
}

miles=getItem(position).caption;
System.out.println("miles"+miles);
}
});
return rowView;
}
}

questionAnswers(4)

yourAnswerToTheQuestion