Java RecyclerView空指针异常
我是Android Studio的新手,发现了类似的问题,但没有一个回复适用于我当前的实例。我一直在尝试使用RecyclerViews,每当我使用它打开活动时,都会收到以下错误消息。代码没有显示任何错误Java RecyclerView空指针异常,java,android,model-view-controller,butterknife,Java,Android,Model View Controller,Butterknife,我是Android Studio的新手,发现了类似的问题,但没有一个回复适用于我当前的实例。我一直在尝试使用RecyclerViews,每当我使用它打开活动时,都会收到以下错误消息。代码没有显示任何错误 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.lucasrizzotto.edgeweather/com.lucasrizzotto.edgeweather.ui.HourlyForecastActi
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.lucasrizzotto.edgeweather/com.lucasrizzotto.edgeweather.ui.HourlyForecastActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v7.widget.RecyclerView.setLayoutManager(android.support.v7.widget.RecyclerView$LayoutManager)' on a null object reference
这是我的适配器:
public class HourAdapter extends RecyclerView.Adapter<HourAdapter.HourViewHolder> {
private Hour[] mHours;
public HourAdapter(Hour[] hours) {
mHours = hours;
}
@Override
public HourViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).
inflate(R.layout.hourly_list_item, parent, false);
HourViewHolder viewHolder = new HourViewHolder(view);
return viewHolder;
}
@Override
public void onBindViewHolder(HourViewHolder holder, int position) {
holder.bindHour(mHours[position]);
}
@Override
public int getItemCount() {
return mHours.length;
}
public class HourViewHolder extends RecyclerView.ViewHolder {
public TextView mTimeLabel;
public TextView mTemperatureLabel;
public TextView mSummaryLabel;
public ImageView mIconImageView;
public HourViewHolder(View itemView) {
super(itemView);
mTimeLabel = (TextView) itemView.findViewById(R.id.timeLabel);
mTemperatureLabel = (TextView) itemView.findViewById(R.id.temperatureLabel);
mSummaryLabel = (TextView) itemView.findViewById(R.id.summaryLabel);
mIconImageView = (ImageView) itemView.findViewById(R.id.iconImageView);
}
public void bindHour(Hour hour) {
mTimeLabel.setText(hour.getHour());
mSummaryLabel.setText(hour.getSummary());
mTemperatureLabel.setText((int)hour.getTemperature());
mIconImageView.setImageResource(hour.getIconId());
}
}
}
我忽略了什么
提前感谢你的智慧 试着打电话:
ButterKnife.bind(this);
设置内容视图后
由于您不是以常规方式执行此操作,因此需要实际调用bind()。基本上需要初始化mRecyclerView 比如说
mRecyclerView = (RecyclerView) findViewById(R.id.recyclerView);
但在您的情况下,您使用ButterKnife库进行此操作
因此需要在setContentView(R.layout.activity\u hourly\u forecast)之后调用其bind()方法
您正在使用ButterKnife绑定视图,这很好 但您似乎忘记了为当前活动初始化ButterKnife 就这样做,
ButterKnife.bind(this);
在这一行之后,
setContentView(R.layout.activity_hourly_forecast);
此将为您当前的活动初始化ButterKnife,您将能够从布局中正确引用RecyclerView
希望有帮助。你好,库山,谢谢你的回复!我尝试了你的建议,但得到了一个新错误:致命异常:主进程:PID:19348 android.content.res.Resources$NotFoundException:String resource ID#0x4B错误是什么?这实际上是对您以前的异常的正确答案。您缺少了一些您使用过的字符串引用。好的,您已经解决了第一个问题,所以谢谢您(:哈哈,谢谢!我甚至不知道我是如何得到它的。我在理解适配器、ViewHolder、LayoutManager(等等)时有点困难)pattern,你有什么可以推荐给我的资源吗?谢谢你的快速回复,Max!由于更改,我现在出现了一个新错误:致命异常:主进程:PID:19348 android.content.res.resources$NotFoundException:String resource ID#0x4bas我说,你尝试引用的strings.xml中缺少一些字符串引用恩斯somewhere@SexualPotatoes在哪一行?谢谢你的回复,阿里特拉!你说得很对。我会的,但我还没有15个名声。它不会让我的。
ButterKnife.bind(this);
setContentView(R.layout.activity_hourly_forecast);