问:像许多ppl一样,当我单击“每日”时,我得到了空指针异常。它在Day适配器的第49行上错误
convertView = LayoutInflater.from(mContext).inflate(R.layout.daily_list_item,null);
与软件包文件中的相同。我运行了调试器,我发现的全部就是我已经知道的,convertView即将变为null。这是我的DayAdapter,让我知道是否还有其他有价值的信息。
包com.example.paxie.stormy.Adapters;
导入android.content.Context;
导入android.view.LayoutInflater;
导入android.view.View;
导入android.view.ViewGroup;
导入android.widget.BaseAdapter;
导入android.widget.ImageView;
导入android.widget.TextView;
导入com.example.paxie.stormy.R;
导入com.example.paxie.stormy.weather.Day;
/ **
*由paxie在15年9月17日创建。
* /
公共类DayAdapter扩展BaseAdapter {
private Context mContext;
私人日[] mDays;
public DayAdapter(Context context,Day [] days){
mDays = days;
}
@Override
public int getCount(){
返回mDays.length;
}
@Override
public Object getItem(int position){
return mDays [position];
}
@Override
public long getItemId(int position){
返回0; //我们不会使用它。标签项,以方便参考
}
@Override
public View getView(int position,View convertView,ViewGroup parent){
ViewHolder持有者;
if(convertView == null){
//全新的
convertView = LayoutInflater.from(mContext).inflate(R.layout.daily_list_item,null);
持有人= new ViewHolder();
holder.iconImageView =(ImageView)convertView.findViewById(R.id.iconImageView);
holder.temperatureLabel =(TextView)convertView.findViewById(R.id.temperatureLabel);
holder.dayLabel =(TextView)convertView.findViewById(R.id.dayNameLabel);
convertView.setTag(holder);
}
其他{
持有人=(ViewHolder)convertView.getTag();
}
Day day = mDays [position];
holder.iconImageView.setImageResource(day.getIconId());
holder.temperatureLabel.setText(day.getTemperatureMax()+“”);
holder.dayLabel.setText(day.getDayOfTheWeek());
返回null;
}
私有静态类ViewHolder {
ImageView iconImageView; //默认为公开的
TextView temperatureLabel;
TextView dayLabel;
}
}
答:您忘记在构造函数中设置mContext,这将导致LayoutInflater.from(mContext)抛出NullPointerExecption。