Java 尝试在空对象错误[android]上调用方法
当我试图运行我的应用程序时,我得到一个错误,说我试图调用一个空对象上的方法。我知道错误发生在哪里,但我不确定原因,因为我认为我之前初始化了对象。 代码如下:Java 尝试在空对象错误[android]上调用方法,java,android,Java,Android,当我试图运行我的应用程序时,我得到一个错误,说我试图调用一个空对象上的方法。我知道错误发生在哪里,但我不确定原因,因为我认为我之前初始化了对象。 代码如下: public class InjuryListFragment extends Fragment{ private RecyclerView mInjuryRecyclerView; private InjuryAdapter mAdapter; @Override public View onCreateV
public class InjuryListFragment extends Fragment{
private RecyclerView mInjuryRecyclerView;
private InjuryAdapter mAdapter;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){
View view=inflater.inflate(R.layout.fragment_injury_list, container, false);
mInjuryRecyclerView=(RecyclerView)view.findViewById(R.id.injury_recycler_view);
mInjuryRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
updateUI();
return view;
}
private void updateUI(){
InjuryLab injuryLab=InjuryLab.get(getActivity());
List<Injury>injuries=injuryLab.getInjuries();
mAdapter=new InjuryAdapter(injuries);
mInjuryRecyclerView.setAdapter(mAdapter);
}
private class InjuryHolder extends RecyclerView.ViewHolder implements View.OnClickListener{
private TextView mTitleTextView;
private TextView mDescriptionTextView;
private Injury mInjury;
public InjuryHolder(View itemView){
super(itemView);
itemView.setOnClickListener(this);
mTitleTextView=(TextView)itemView.findViewById(R.id.list_item_injury_title_text_view);
mDescriptionTextView=(TextView)itemView.findViewById(R.id.injury_description);
}
public void bindInjury(Injury injury){
mInjury=injury;
mTitleTextView.setText(mInjury.getTitle());
mDescriptionTextView.setText(mInjury.getDescription());
}
@Override
public void onClick(View v){
Intent intent=InjuryActivity.newIntent(getActivity(), mInjury.getId());
startActivity(intent);
}
}
错误发生在MDDescriptionTextView.setTextmInjury.getDescription行 仔细检查xml和代码中视图的id。在初始化TextView之前,检查是否设置了文本。在执行bindInjury方法之前,还要检查是否调用了构造函数
public void bindInjury(Injury injury){
if(injury != null){
mInjury=injury;
}
mTitleTextView.setText(mInjury.getTitle());
mDescriptionTextView.setText(mInjury.getDescription());
}
具体告诉我们错误,或者更好地发布日志。空对象是MDDescriptionTextView还是mInjury?日志如下09-23 00:03:37.106 19159-19159/com.bignerdranch.android.firstaid E/AndroidRuntime﹕ 致命异常:主进程:com.bignerdranch.android.firstaid,PID:19159 java.lang.NullPointerException:尝试在com.bignerdranch.android.firstaid.InjuryListFragment$InjuryHolder.bindInjuryInjuryListFragment.java:54处的空对象引用上调用虚拟方法'void android.widget.TextView.setTextjava.lang.CharSequence'java:79发布您的适配器代码。