2011-07-07 2 views
1

j'ai créé adaptateur personnalisé comme celui-ciComment obtenir la ligne choisie de la vue de la liste personnalisée

SettingsAdapter public class étend BaseAdapter {

ArrayList<String> Noptions = new ArrayList<String>(); 
Context mContext; 
LayoutInflater inf; 

public SettingsAdapter(Context c, ArrayList<String> options){ 
    this.mContext = c; 
    this.Noptions = options; 
    inf = LayoutInflater.from(mContext); 
} 

@Override 
public int getCount() { 
    return Noptions.size(); 
} 

@Override 
public Object getItem(int position) { 
    return Noptions.get(position); 
} 

@Override 
public long getItemId(int position) { 
    return position; 
} 

static class ViewHolder2{ 
    TextView name; 
    CheckBox cb; 
} 

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    ViewHolder2 holder; 
    if(convertView == null){ 
     convertView = inf.inflate(R.layout.settings_row, null); 
     holder = new ViewHolder2(); 
     holder.name = (TextView)convertView.findViewById(R.id.optionName); 
     holder.cb = (CheckBox)convertView.findViewById(R.id.chooseOptionName); 
     convertView.setTag(holder); 
    } 
    else{ 
     holder = (ViewHolder2)convertView.getTag(); 
    } 

    holder.name.setText(Noptions.get(position).toString()); 

    holder.cb.setChecked(false); 


    return convertView; 
} 

}

quelqu'un peut me expliquer comment obtenir le texte seulement dans les lignes où la case à cocher est sélectionnée? !!!? toute aide sera très appréciée.

Répondre

0

S'il vous plaît essayer ci-dessous le code

@Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     ViewHolder2 holder; 
     if(convertView == null){ 
      convertView = inf.inflate(R.layout.settings_row, null); 
      holder = new ViewHolder2(); 
      holder.name = (TextView)convertView.findViewById(R.id.optionName); 
      holder.cb = (CheckBox)convertView.findViewById(R.id.chooseOptionName); 
      convertView.setTag(holder); 
     } 
     else{ 
      holder = (ViewHolder2)convertView.getTag(); 
     } 

     holder.name.setText(Noptions.get(position).toString()); 

     holder.cb.setChecked(false); 

     holder.cb.setTag(Noptions.get(position).toString()); 
     holder.cb.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 
       String txtvalue= v.getTag().toString(); 
       // toast "txtvalue" value 
      } 
     }); 

     return convertView; 
    } 
+0

merci. il a fait le travail –

Questions connexes