【发布时间】:2018-03-06 08:55:31
【问题描述】:
我有一个这样的适配器
if(modelSalesAct.getStatus().equals("2"))
{
viewHolder.ivStatus.setImageResource(R.drawable.ic_black);
}
else
if(modelSalesAct.getStatus().equals("3")||modelSalesAct.getStatus().equals("4"))
{
viewHolder.ivStatus.setImageResource(R.drawable.ic_yellow);
}
else
if(modelSalesAct.getStatus().equals("5"))
{
viewHolder.ivStatus.setImageResource(R.drawable.ic_red);
}
这是设置不同的图像匹配条件状态。但我收到这样的错误消息
java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“void android.widget.ImageView.setImageResource(int)” 在 com.kreators.nvmobile.dashboard.AdapterSalesAct.getView(AdapterSalesAct.java:133)
错误停止在线我从我的drawable 中设置了图像资源。为什么会这样?我不知道会发生什么。谁能帮帮我?
仅供参考,这是我的 ViewAdapter
ViewHolder viewHolder; // view lookup cache stored in tag
final View result;
if (convertView == null) {
viewHolder = new ViewHolder();
LayoutInflater inflater = LayoutInflater.from(getContext());
convertView = inflater.inflate(R.layout.row_sales_act, parent,
false);
viewHolder.ivHeader = (ImageView)
convertView.findViewById(R.id.ivHeader);
viewHolder.txtCUSTID = (TextView)
convertView.findViewById(R.id.ADAPTERCUSTID);
viewHolder.txtSalesName = (TextView)
convertView.findViewById(R.id.ADAPTERSALESNAME);
viewHolder.txtSales = (TextView)
convertView.findViewById(R.id.ADAPTERSALES);
viewHolder.txtChannel = (TextView)
convertView.findViewById(R.id.tvCustomer);
viewHolder.ivStatus = (ImageView)
convertView.findViewById(R.id.ivStatus);
viewHolder.txtTarget = (TextView)
convertView.findViewById(R.id.tvTarget);
viewHolder.txtSI = (TextView)
convertView.findViewById(R.id.tvSI);
viewHolder.txtPercentPSI = (TextView)
convertView.findViewById(R.id.tvPercentPSI);
viewHolder.txtPercentSI = (TextView)
convertView.findViewById(R.id.tvPercentSI);
viewHolder.txtSO = (TextView)
convertView.findViewById(R.id.tvSO);
viewHolder.txtAR = (TextView)
convertView.findViewById(R.id.tvAR);
result=convertView;
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
result=convertView;
}
viewHolder.txtCUSTID.setText(modelSalesAct.getCUSTID());
viewHolder.txtSalesName.setText(modelSalesAct.getSALESNAME());
viewHolder.txtSales.setText(modelSalesAct.getSALES());
viewHolder.txtChannel.setText(modelSalesAct.getChannel());
if(modelSalesAct.getStatus().equals("2"))
{
viewHolder.ivStatus.setImageResource(R.drawable.ic_black);
}
else
if(modelSalesAct.getStatus().equals("3")||modelSalesAct.getStatus().equals("4"))
{
viewHolder.ivStatus.setImageResource(R.drawable.ic_yellow);
}
else
if(modelSalesAct.getStatus().equals("5"))
{
viewHolder.ivStatus.setImageResource(R.drawable.ic_red);
}
viewHolder.txtTarget.setText(modelSalesAct.getTarget());
viewHolder.txtSI.setText(modelSalesAct.getSI());
viewHolder.txtPercentSI.setText(modelSalesAct.getPercentSI());
viewHolder.txtPercentPSI.setText(modelSalesAct.getPercentPSI());
viewHolder.txtSO.setText(modelSalesAct.getSO());
viewHolder.txtAR.setText(modelSalesAct.getAR());
return convertView;
【问题讨论】:
-
发布您的完整适配器代码
标签: java android listview android-adapter