在空引用上隐藏android.widget.imageview.setimageresource(int)'(日志中的致命错误消息)

时间:2016-10-09 00:05:51

标签: java android android-recyclerview

请遇到此null错误消息java.lang.NullPointerException(无错误消息)。我真的需要有关如何以及在何处添加适当代码的帮助,以便应用程序不会崩溃。这是我遇到问题的JAVA文件。我正在尝试从我的drawable文件夹中创建一个回收站视图和jpg图像

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 []图像我可能是错的请用正确的代码纠正我,我将用它来替换并使代码工作。

1 个答案:

答案 0 :(得分:0)

imageview辅助功能表单private更改为任何其他修饰符&amp;再试一次