我想要一份世界新七大奇迹和七大自然奇观的清单。我正在尝试使用单一的recyclerview并为两个列表添加标题。
header one
wonder1
wonder1
..
wonder7
header two
n_wonder1
..
n_wonder7
我想对标题使用不同的cardview,但我收到null pointer exception
错误。谁能说出我犯的错误?
我正在上传适配器代码。这里。谢谢。
11-01 14:50:38.245 2946-2946/com.leucod.sid.winfo E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.leucod.sid.winfo, PID: 2946
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference
at com.leucod.sid.winfo.Won_Adapter.onBindViewHolder(Won_Adapter.java:66)
at com.leucod.sid.winfo.Won_Adapter.onBindViewHolder(Won_Adapter.java:15)
at android.support.v7.widget.RecyclerView$Adapter.onBindViewHolder(RecyclerView.java:5471)
at android.support.v7.widget.RecyclerView$Adapter.bindViewHolder(RecyclerView.java:5504)
at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4741)
at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4617)
at android.support.v7.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:1994)
at android.support.v7.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1390)
at android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1353)
at android.support.v7.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:574)
at android.support.v7.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:3028)
at android.support.v7.widget.RecyclerView.onMeasure(RecyclerView.java:2625)
at android.view.View.measure(View.java:17565)
at android.widget.RelativeLayout.measureChild(RelativeLayout.java:698)
at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:482)
at android.view.View.measure(View.java:17565)
at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:728)
at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:464)
at android.view.View.measure(View.java:17565)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5545)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:436)
at android.support.v7.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:135)
at android.view.View.measure(View.java:17565)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5545)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1436)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:722)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:613)
at android.view.View.measure(View.java:17565)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5545)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:436)
at android.view.View.measure(View.java:17565)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5545)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1436)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:722)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:613)
at android.view.View.measure(View.java:17565)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5545)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:436)
at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2652)
at android.view.View.measure(View.java:17565)
at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2027)
at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1185)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1391)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1073)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5903)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:828)
at android.view.Choreographer.doCallbacks(Choreographer.java:588)
at android.view.Choreographer.doFrame(Choreographer.java:558)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:814)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5268)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Me
Adapter.class
public class Won_Adapter extends RecyclerView.Adapter<Won_Adapter.ViewHolder> {
String[] ContValues;
int[] img;
Context context;
View view1;
Won_Adapter.ViewHolder viewHolder1;
public Won_Adapter(Context context1, String[] ContValues1, int[] img1) {
ContValues = ContValues1;
context = context1;
img = img1;
}
public final int head=0;
public static class ViewHolder extends RecyclerView.ViewHolder{
public TextView textView;
public ImageView imageView;
public TextView txh;
public ImageView imh;
public ViewHolder(View v){
super(v);
textView = (TextView)v.findViewById(R.id.cont_view);
imageView = (ImageView)v.findViewById(R.id.cont_image);
txh = (TextView)v.findViewById(R.id.texth1);
imh = (ImageView)v.findViewById(R.id.imageh1);
}
}
@Override
public Won_Adapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType){
if(viewType==head){
view1 = LayoutInflater.from(context).inflate(R.layout.header_one,parent,false);
viewHolder1 = new Won_Adapter.ViewHolder(view1);
return viewHolder1;}
else {
view1 = LayoutInflater.from(context).inflate(R.layout.card_wonders,parent,false);
viewHolder1 = new Won_Adapter.ViewHolder(view1);
return viewHolder1;
}
}
@Override
public void onBindViewHolder(Won_Adapter.ViewHolder holder, int position){
if (getItemViewType(position)==head){
holder.txh.setText(ContValues[position]);
holder.imh.setImageResource(img[position]);}
else {
holder.textView.setText(ContValues[position]);
holder.imageView.setImageResource(img[position]);
}
}
@Override
public int getItemCount () {
return ContValues.length;
}
}
答案 0 :(得分:0)
在适配器类holder.txh.setText(ContValues[position]);
中,ContValues[position]
返回null。它中没有数据,它是一个空指针异常。把它放在try
和catch