0

リスト ビューでチェック ボックスを使用する必要があるフォームを作成しています。チェック ボックスを使用してリストを作成しました。これが私のコードです----

private void getCustomListitem(){
        _lvcustom=(ListView)findViewById(R.id.lvcustom);        
                 String datas[]={"one","two"};

        simpleListAdap = new SimpleListAdapter_Custom(_act , data);
        _lvcustom.setAdapter(simpleListAdap);

public class SimpleListAdapter_Custom extends ArrayAdapter<String>{
private Activity _parent;
private String[] _data;
private EditText _et;
public SimpleListAdapter_Custom(Activity parent,  String[] data) {
    super(parent, R.layout.simple_list_custom, data);
    // TODO Auto-generated constructor stub
    this._parent = parent;
    this._data = data;

}
@Override
public View getView(int position, View convertView, ViewGroup parent){
    LayoutInflater inflater = this._parent.getLayoutInflater();
    View curView = inflater.inflate(R.layout.simple_list_custom, parent,false);

    final CheckBox cb = (CheckBox) curView.findViewById(R.id.cb01);
//  cb.setChecked(_data.length);
    cb.setTag(_data);

    final TextView chkTxtView = (TextView) curView.findViewById(R.id.label);
    chkTxtView.setText(this._data[position]);

    return curView;
}
}
4

1 に答える 1

1
    public class SimpleListAdapter_Custom extends ArrayAdapter<String>{
private Activity _parent;
private String[] _data;
private EditText _et;
private boolean[] checkBoxState;

public SimpleListAdapter_Custom(Activity parent,  String[] data) {
    super(parent, R.layout.simple_list_custom, data);
    // TODO Auto-generated constructor stub
    this._parent = parent;
    this._data = data;
    checkBoxState = new boolean[data.getCount()];

}
@Override
public View getView(int position, View convertView, ViewGroup parent){
    LayoutInflater inflater = this._parent.getLayoutInflater();
    View curView = inflater.inflate(R.layout.simple_list_custom, parent,false);

    final CheckBox cb = (CheckBox) curView.findViewById(R.id.cb01);
    final TextView chkTxtView = (TextView) curView.findViewById(R.id.label);
//  cb.setChecked(_data.length);
//    cb.setTag(_data);
    cb.setChecked(checkBoxState[position]);

    cb.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {
            if (((CheckBox) v).isChecked())
                checkBoxState[position] = true;
            else
                checkBoxState[position] = false;
        }
    });
    if (checkBoxState[position])
        chkTxtView.setText(this._data[position]);

    return curView;
}

カスタム アダプタを次のように変更します。

于 2013-10-08T14:11:15.630 に答える