【问题标题】:when i run my application on android emulator it crashed though there is no error in my code.it shows the following error [duplicate]当我在android模拟器上运行我的应用程序时它崩溃了,尽管我的代码中没有错误。它显示以下错误[重复]
【发布时间】:2021-06-09 14:08:24
【问题描述】:

原因:java.lang.NullPointerException:尝试在 com.example 的空对象引用上调用虚拟方法 'android.view.View android.widget.EditText.findViewById(int)'。 temperaturecricket.MainActivity.onCreate(MainActivity.java:25)。

这是突出我的错误的地方。

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

这是我的全部代码

`package com.example.temperaturecricket;

导入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);
                }

            }
        });
    }


}'

【问题讨论】:

  • 贴出相关部分代码,例如etChirps.findViewById(R.id.etChirps)所在的方法

标签: java android android-studio nullpointerexception


【解决方案1】:

问题是:

 etChirps.findViewById(R.id.etChirps);

如果您想通过 id 找到您的视图,请使用:view = findViewByID(R.id.viewId); 而不是 view.findViewById(R.id.viewId);

在您的情况下,您应该使用:

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

【讨论】:

  • 我已经尝试过了,但仍然存在问题我已经在上面发布了我的整个代码。请您仔细阅读。thx
  • TextView (tvResults) 和 Button (btnCalculate) 也有同样的问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-12-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-06
相关资源
最近更新 更多