Android - 无法在自定义适配器中设置我的imageView
问题描述:
我想根据字符串值设置我的imageview。但图像从未设置。请指导我,如果我在这里做错了。由于Android - 无法在自定义适配器中设置我的imageView
这里是我的代码:
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
getExpense expense = objects.get(position);
EventController controller = new EventController(ctx);
View view = convertView;
if (view == null) {
view = lInflater.inflate(R.layout.view_expense_entry, parent, false);
}
TextView expenseId = (TextView)view.findViewById(R.id.expenseId);
expenseId.setText(expense.getExpenseId());
TextView expenseName = (TextView)view.findViewById(R.id.expenseName);
expenseName.setText(expense.getExpenseName());
TextView expenseQuantity = (TextView)view.findViewById(R.id.expenseQuantity);
expenseQuantity.setText("Quantity : x" + expense.getExpenseQuantity());
ImageView expenseImage = (ImageView)view.findViewById(R.id.ivtype);
String expenseType = controller.getExpenseType(expenseId.getText().toString());
if (expenseType.equals("Food")){
expenseImage.setImageResource(R.drawable.food);
}
else if (expenseType.equals("Beverage")){
expenseImage.setImageResource(R.drawable.drink);
}
else if (expenseType.equals("Dessert")){
expenseImage.setImageDrawable(ctx.getResources().getDrawable(R.drawable.dessert));
}
else if (expenseType.equals("Set")){
expenseImage.setImageDrawable(ctx.getResources().getDrawable(R.drawable.set));
}
return view;
}
答
除了我的关于确保IF conditons得到满足上述评论。你正在使用需要一个整数的setImageResource,然后你使用的是getDrawable。所以你的代码不一致。
试试这个:
int resourceId = 0;
if (expenseType.equals("Food")){
resourceId = ctx.getResources().getIdentifier("Food","drawable",ctx.getPackageName());
}
else if (expenseType.equals("Beverage")){
resourceId = ctx.getResources().getIdentifier("drink","drawable",ctx.getPackageName());
}
else if (expenseType.equals("Dessert")){
resourceId = ctx.getResources().getIdentifier("dessert","drawable",ctx.getPackageName());
}
else if (expenseType.equals("Set")){
resourceId = ctx.getResources().getIdentifier("set","drawable",ctx.getPackageName());
}
expenseImage.setImageResource(resourceId);
您确定您是否达到条件?您是在调试器中完成的,还是可以添加日志语句?即:Log.i(“DEBUG”,费用类型)。 – wyoskibum
你可以发布错误日志吗? – jasonflaherty
@jasonflaherty找不到错误。 – AndroidWorld12