0

世界の7つの驚異と7つの自然の驚異のリストが必要です。私は単一のrecyclerviewを使用して両方のリストの見出しを追加しようとしています。recyclerviewで2つの異なるカードビューを使用しているときのエラー

header one 
wonder1 
wonder1 
.. 
wonder7 
header two 
n_wonder1 
.. 
n_wonder7 

私は、ヘッダーに異なるcardviewを使用したいが、私はnull pointer exceptionエラーを取得しています。誰が私が作ったミスを教えてもらえますか? アダプタコードをアップロードしています。ここに。ありがとうございました。アダプタクラスholder.txh.setText(ContValues[position]);

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

ContValues[position]はnullを返しています。それにはデータがありません。それはヌルポインタ例外です。その中に入れてくださいtrycatch

+0

しかし、カードビューを1つだけ使用するとうまく動作します。別のカードを追加すると、エラーが発生します。理解できません。 – SID14

関連する問題