-2

Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.View android.widget.EditText.findViewById(int)' on a null object reference at com.example.temperaturecricket.MainActivity.onCreate(MainActivity.java:25).

this is where it highlights my error.

     '''
**`etChirps.findViewById(R.id.etChirps);`**
'''

this is my whole code

`package com.example.temperaturecricket;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

import java.text.DecimalFormat;

public class MainActivity extends AppCompatActivity {

    EditText etChirps;
    Button btnCalculate;
    TextView tvResults;
    DecimalFormat formatter;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        etChirps = findViewById(R.id.etChirps);

        btnCalculate.findViewById(R.id.btnCalculate);
        tvResults.findViewById(R.id.tvResults);

        tvResults.setVisibility(View.GONE);
            formatter=new DecimalFormat("#0.0");
        btnCalculate.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v)
            {
                if(etChirps.getText().toString().isEmpty())
                {
                    Toast.makeText(MainActivity.this,"Please Enter All fields ",Toast.LENGTH_SHORT).show();
                }
                else
                {
                    int chirps=Integer.parseInt(etChirps.getText().toString().trim());
                    double temp=(chirps/3.0)+4;
                    String result="The Approx Temperature outside is : "+formatter.format(temp)+" Degree Celsius";
                    tvResults.setText(result);
                    tvResults.setVisibility(View.VISIBLE);
                }

            }
        });
    }


}'

1 Answers1

1

The problem is:

 etChirps.findViewById(R.id.etChirps);

If you want to find your View with its id, use: view = findViewByID(R.id.viewId); instead of view.findViewById(R.id.viewId);

In your case you should use:

 etChirps = findViewById(R.id.etChirps);
 btnCalculate = findViewById(R.id.btnCalculate);
 tvResults = findViewById(R.id.tvResults);
Toygur Ziya Kutlu
  • 269
  • 1
  • 3
  • 15