我有一些在用户构建汽车时选中的复选框。然后在我的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;
}
答案 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()));