在listview适配器中设置复选框状态

时间:2015-07-05 00:32:18

标签: android

我有一些在用户构建汽车时选中的复选框。然后在我的listview适配器中,我试图解释这一点。以下是我的代码,我不认为" setText"将用于复选框。

这是我的错误:

android.content.res.Resources$NotFoundException: String resource ID #0x1
at android.content.res.Resources.getText(Resources.java:274)
at android.widget.TextView.setText(TextView.java:4122)

这是我的listview适配器代码:

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    View v = convertView;
    ViewHolder holder;
    if(v == null) {
        v = mInflater.inflate(R.layout.list_item_car, parent, false);
        holder = new ViewHolder();
        holder.txtMake = (TextView) v.findViewById(R.id.txt_make);
        holder.txtModel = (TextView) v.findViewById(R.id.txt_model);
        holder.c1 = (CheckBox) v.findViewById(R.id.c1);
        holder.c2 = (CheckBox) v.findViewById(R.id.c2);



        v.setTag(holder);
    }
    else {
        holder = (ViewHolder) v.getTag();
    }

    // fill row data
    Car currentItem = getItem(position);
    if(currentItem != null) {
        holder.txtMake.setText(currentItem.getMake());
        holder.txtModel.setText(currentItem.getModel());
        holder.c1.setText(currentItem.getc1());  //<--error here
        holder.c2.setText(currentItem.getc2());  //<--error here
    }

    return v;
}

1 个答案:

答案 0 :(得分:0)

与日志一样:

  

Resources $ NotFoundException:字符串资源ID#0x1

可能getc1()getc2()方法返回int类型值,因此系统会将这两个值都视为ID并尝试在值资源中查找。

使用String.valueOf方法将int值显示为CheckBox中的文字:

    holder.txtMake.setText(String.valueOf(currentItem.getMake()));
    holder.txtModel.setText(String.valueOf(currentItem.getModel()));
    holder.c1.setText(String.valueOf(currentItem.getc1()));  
    holder.c2.setText(String.valueOf(currentItem.getc2()));