Как получить выбранную строку из пользовательского списка - PullRequest
1 голос
/ 07 июля 2011

Я создал собственный адаптер, подобный этому

открытый класс SettingsAdapter расширяет 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;
}

}

Может кто-нибудь объяснить мне, как получить текст только в техстроки, где установлен флажок? !!!?любая помощь будет очень признательна.

1 Ответ

0 голосов
/ 07 июля 2011

Пожалуйста, попробуйте ниже код

@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;
    }
...