Revaldo Kusiman
Revaldo Kusiman

Reputation: 11

ImageView.setImageDrawable(android.graphics.drawable.Drawable)' on a null object reference

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

Answers (2)

lyncx
lyncx

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

Md. Enamul Haque
Md. Enamul Haque

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

Related Questions