2016-10-09 36 views
-2

請對這個null錯誤消息java.lang.NullPointerException(沒有錯誤消息)有問題。我真的需要幫助如何以及在哪裏添加適當的代碼,以便應用程序不會崩潰。這是我有問題的JAVA文件。我想從我的繪製文件夾中創建一個視圖回收和JPG圖片在空引用(日誌貓中的致命錯誤消息)上無效android.widget.imageview.setimageresource(int)

Horizo​​ntalListAdapter.java

import android.app.Activity; 
import android.graphics.Picture; 
import android.os.Bundle; 
import android.support.v7.widget.RecyclerView; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.ImageView; 
import android.widget.LinearLayout; 
import android.widget.RelativeLayout; 
import android.widget.TextView; 
import android.widget.Toast; 

public class HorizontalListAdapter extends RecyclerView.Adapter<HorizontalListAdapter.ViewHolder> 
{ 
private Activity activity; 
int[] images= {R.drawable.vb1,R.drawable.pota,R.drawable.vb1, 
     R.drawable.pota,R.drawable.vb1,R.drawable.download1,R.drawable.pota}; 
String[] food_items={"prawan","awadhi_lucknow_biryani","eggwraps","chips","mayonnaise","companin","mixvegwrap"}; 


public HorizontalListAdapter(Activity activity) 
{ 
    this.activity = activity; 
} 

@Override 
public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int viewType) { 
    LayoutInflater inflater = activity.getLayoutInflater(); 
    View view = inflater.inflate(R.layout.item_horizontal_list, viewGroup, false); 

    return new ViewHolder(view); 
} 

@Override 
public void onBindViewHolder(HorizontalListAdapter.ViewHolder viewHolder, final int position) { 
    viewHolder.imageView.setImageResource(images[position]); 
    viewHolder.txtview.setText(food_items[position].toUpperCase()); 

    viewHolder.linearLayout.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 

      Toast.makeText(activity, "Position clicked: " + position, Toast.LENGTH_SHORT).show(); 
     } 
    }); 
} 

@Override 
public int getItemCount() { 
    return images.length; 
} 

/** 
* View holder to display each RecylerView item 
*/ 
protected class ViewHolder extends RecyclerView.ViewHolder { 

    private LinearLayout linearLayout; 
    private ImageView imageView; 
    private TextView txtview; 


    public ViewHolder(View view) { 
     super(view); 
     imageView = (ImageView) view.findViewById(R.id.imageview); 

     txtview = (TextView) view.findViewById(R.id.txtview); 
     linearLayout = (LinearLayout) view.findViewById(R.id.layout); 
    } 
} 
} 

第二Java類VerticalListAdapter.java

import android.app.Activity; 
import android.support.v7.widget.RecyclerView; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.ImageView; 
import android.widget.RelativeLayout; 
import android.widget.TextView; 
import android.widget.Toast; 

public class VerticalListAdapter extends RecyclerView.Adapter<VerticalListAdapter.ViewHolder> { 

private Activity activity; 

public VerticalListAdapter(Activity activity) { 
    this.activity = activity; 
} 
int[] images= {R.drawable.images,R.drawable.images,R.drawable.images, 
     R.drawable.images,R.drawable.images,R.drawable.images,R.drawable.images}; 
String[] food_items={"prawan","awadhi_lucknow_biryani","eggwraps","chips","mayonnaise","companin","mixvegwrap"}; 
String[] cost={"Rs 200","Rs 300","Rs 150","R 320","Rs 450","Rs 120","Rs 380"}; 
@Override 
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
    LayoutInflater inflater = activity.getLayoutInflater(); 
    View view = inflater.inflate(R.layout.item_recycler_view, parent, false); 

    return new ViewHolder(view); 
} 

@Override 
public void onBindViewHolder(ViewHolder viewHolder, final int position) { 
    // if ((position + 1) % 2 == 0) { 
    viewHolder.imageView.setImageResource(images[position]); 
    viewHolder.txtview.setText(food_items[position].toUpperCase()); 
    viewHolder.txtCost.setText("Cost Per Person "+cost[position]); 
    // } else { 
    // viewHolder.imageView.setImageResource(R.drawable.awadhi_lucknow_biryani); 
    //} 
    viewHolder.container.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Toast.makeText(activity, "Position: " + position, Toast.LENGTH_SHORT).show(); 
     } 
    }); 
} 

@Override 
public int getItemCount() { 
    return images.length; 
} 

/** 
* View holder to display each RecylerView item 
*/ 
protected class ViewHolder extends RecyclerView.ViewHolder { 
    private ImageView imageView; 
    private TextView txtview; 
    private TextView txtCost; 
    private RelativeLayout container; 

    public ViewHolder(View view) { 
     super(view); 
     imageView = (ImageView) view.findViewById(R.id.image); 
     txtview = (TextView) view.findViewById(R.id.text); 
     txtCost= (TextView) view.findViewById(R.id.textView); 
     container = (RelativeLayout) view.findViewById(R.id.container); 
    } 

} 
} 

請我需要幫助,這個我猜測它是int []圖像導致錯誤,我可能是錯誤的,請糾正我用正確的代碼,我會用來代替和使代碼工作。

+0

嘗試重建項目或清潔和運行 –

回答

0

變化imageview無障礙形式private任何其他修改&再試