Reputation: 11
I got error while in the logcr said "Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ImageView.setImageDrawable(android.graphics.drawable.Drawable)' on a null object reference" and "at com.example.checkdisease.CheckDisease.onCreate(CheckDisease.java:41)" I dont how to fix. can someone help me?
TextView tv_head;
TextView info[] =new TextView[2];
CardView content;
ImageView img[] = new ImageView[7];
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
content = findViewById(R.id.cv_disease);
img[0] = findViewById(R.id.content_disease1);
img[1] =findViewById(R.id.content_disease2);
info[0] = findViewById(R.id.info1);
info[1] = findViewById(R.id.info2);
tv_head = findViewById(R.id.tv_head);
int max =getIntent().getIntExtra("max", 0);
int[] c =getIntent().getIntArrayExtra("c");
int i= 0;
if (max == c[0]) {
img[i].setImageDrawable(getResources().getDrawable(R.drawable.d1));
info[i].setVisibility(View.VISIBLE);
info[i].setMovementMethod(LinkMovementMethod.getInstance());
info[i].setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent browserIntent = new Intent(Intent.ACTION_VIEW);
browserIntent.setData(Uri.parse("https://www.google.com/search?q=diarrhoea&oq=diarrhoea&aqs=chrome..69i57.6104j0j1&sourceid=chrome&ie=UTF-8"));
startActivity(browserIntent);
}
});
i++;
}
if (max == c[1]) {
img[i].setImageDrawable(getResources().getDrawable(R.drawable.d2));
info[i].setVisibility(View.VISIBLE);
info[i].setMovementMethod(LinkMovementMethod.getInstance());
info[i].setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent browserIntent = new Intent(Intent.ACTION_VIEW);
browserIntent.setData(Uri.parse("https://www.google.com/search?ei=xOeZXb3KCIX6z7sPzomcsAg&q=malaria&oq=malaria&gs_l=psy-ab.3..0i67l6j0l4.40811.43654..45013...0.2..3.187.1852.0j12......0....1..gws-wiz.....6..0i71j0i362i308i154i357j0i131.J8tK4aVih7Y&ved=0ahUKEwi9vOLF2oflAhUF_XMBHc4EB4YQ4dUDCAs&uact=5"));
startActivity(browserIntent);
}
});
i++;
}
if (max == c[2]) {
img[i].setImageDrawable(getResources().getDrawable(R.drawable.d3));
info[i].setVisibility(View.VISIBLE);
info[i].setMovementMethod(LinkMovementMethod.getInstance());
info[i].setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent browserIntent = new Intent(Intent.ACTION_VIEW);
browserIntent.setData(Uri.parse("https://www.google.com/search?ei=8ueZXf3XGcOzmge416SoBw&q=typhoid&oq=typhoid&gs_l=psy-ab.3..0i67l4j0j0i67l2j0l3.17165.19407..19806...0.2..3.188.1796.0j12......0....1..gws-wiz.....6..0i71j0i362i308i154i357j0i131i67.gApJs810Cpo&ved=0ahUKEwj9mOvb2oflAhXDmeYKHbgrCXUQ4dUDCAs&uact=5"));
startActivity(browserIntent);
}
});
i++;
}
if (max == c[3]) {
img[i].setImageDrawable(getResources().getDrawable(R.drawable.d4));
info[i].setVisibility(View.VISIBLE);
info[i].setMovementMethod(LinkMovementMethod.getInstance());
info[i].setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent browserIntent = new Intent(Intent.ACTION_VIEW);
browserIntent.setData(Uri.parse("https://www.google.com/search?ei=B-iZXbSsB9PUz7sPnM6iUA&q=diabetes&oq=diabetes&gs_l=psy-ab.3..0i67l3j0j0i67j0l5.20518.23074..23777...0.2..3.199.1955.0j13......0....1..gws-wiz.....6..0i71j0i362i308i154i357j0i131j0i10i67.xxtksmH4CzM&ved=0ahUKEwj0y9rl2oflAhVT6nMBHRynCAoQ4dUDCAs&uact=5"));
startActivity(browserIntent);
}
});
i++;
}
if (max == c[4]) {
img[i].setImageDrawable(getResources().getDrawable(R.drawable.d5));
info[i].setVisibility(View.VISIBLE);
info[i].setMovementMethod(LinkMovementMethod.getInstance());
info[i].setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent browserIntent = new Intent(Intent.ACTION_VIEW);
browserIntent.setData(Uri.parse("https://www.google.com/search?biw=1536&bih=754&ei=z-iZXdi1GJOf9QPDubbICg&q=blood+pressure+precautions&oq=blood+pressure+precautions&gs_l=psy-ab.3..0i67j0l2j0i22i30l7.4084.4084..4335...0.1..0.157.157.0j1....1..0....1..gws-wiz.......0i71.XK6RSKLBd1o&ved=0ahUKEwiY2ZrF24flAhWTT30KHcOcDakQ4dUDCAs&uact=5"));
startActivity(browserIntent);
}
});
i++;
}
if (max == c[5]) {
img[i].setImageDrawable(getResources().getDrawable(R.drawable.d6));
info[i].setVisibility(View.VISIBLE);
info[i].setMovementMethod(LinkMovementMethod.getInstance());
info[i].setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent browserIntent = new Intent(Intent.ACTION_VIEW);
browserIntent.setData(Uri.parse("https://www.google.com/search?ei=juiZXaKeF4ne9QPZm6voDQ&q=heart+disease&oq=heart+diseas&gs_l=psy-ab.3.0.0l10.21631.27511..29715...3.1..0.187.2294.0j15......0....1..gws-wiz.......0i71j0i67j0i273j0i131j0i10j0i131i273.F4U-kXSmLO8"));
startActivity(browserIntent);
}
});
i++;
}
}
}
Upvotes: 1
Views: 343
Reputation: 680
Here you have initialized your img array for index array 0 and 2 like
img[0] = findViewById(R.id.content_disease1);
img[1] =findViewById(R.id.content_disease2);
However if your if condition, if (max == c[0])
matches more than 2 times then i
will be greater than 3. As there is no img[3] or higher index initialised there will be a null pointer exception when trying to set image for those image view.
Upvotes: 1
Reputation: 1026
What is the exact 'max' value?
Here you have initialize only 2 ImageView
img[0] and img[1]
if value of max is 3 to 7 it will be cause of exception (java.lang.NullPointerException).
Because img[2], img[3], img[4], img[5], img[6], img[7] are not initialized.
Hope you understand ...
Upvotes: 1