ouvinte OnCheckChanged funciona apenas para a primeira caixa de seleção em uma visualização de lista personalizada

A caixa de seleção de ouvinte na minha lista de exibição personalizada funciona apenas para a primeira caixa de seleção. Eu acho que isso tem algo a ver com a posição em getView (). Estou anexando meu código a esta pergunta. Sugira uma solução alternativa para esse problema.

 public View getView(final int position, View convertView, ViewGroup parent) {
    final ViewHolder holder;  
    LayoutInflater inflater =  context.getLayoutInflater();  
    if(convertView==null)  
    {  
        conve,rtView = inflater.inflate(R.layout.custom_list, null);
        holder = new ViewHolder();  
        holder.txtViewTitle = (TextView) convertView.findViewById(R.id.title_text);  
        holder.txtViewDescription = (TextView)convertView.findViewById(R.id.description_text);  
        holder.cb=(CheckBox) convertView.findViewById(R.id.cb);
        convertView.setTag(holder);  
        holder.cb.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
           String Channel=holder.txtViewTitle.getText().toString();
           @Override
           public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
             if(position==0)
             {
                //works 
             }
             else
             if(position==1)
             { 
               //doesn't work
             }
        });
    }  
    else  
    {
        holder=(ViewHolder)convertView.getTag();  
    }  

    holder.txtViewTitle.setText(title[position]);  
    holder.txtViewDescription.setText(description[position]);  
    holder.txtViewDescription.setFocusable(false);
    holder.txtViewTitle.setFocusable(false);

    return convertView;  
}  

questionAnswers(2)

yourAnswerToTheQuestion