当前位置: 首页 > 知识库问答 >
问题:

带有onclick函数的IlegalStateException

都才俊
2023-03-14

我已经创建了一个onButtonClick函数,并在两个按钮计算器和Reset上实现了它。当点击重置它重置值,但当点击计算它使一个IllegalStatException。我已经在这个论坛上讨论了这个问题,但找不到解决办法

package com.example.rajafarid.hc;

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


public class FoodStorage extends MainActivity {
public int sum = 1;
public int  result;
public int wheatlb = 25;
public int wheatkg = 10;

public int beanlb = 5;
public int beankg = 2;

EditText editTextNOP;
EditText editTextNOMS;
EditText editTextWheat;
EditText editTextBeans;
Button   btnCalculate;
Button   btnReset;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_food_storage);
    editTextNOP = (EditText) findViewById(R.id.editTextNOP);
    editTextNOMS = (EditText) findViewById(R.id.editTextNOMS);
    btnCalculate = (Button) findViewById(R.id.btnCalculate);
    btnReset = (Button) findViewById(R.id.btnReset);
}
public void OnButtonClick(View v)
{

    if (v.getId() == R.id.btnCalculate)
    {
        result = sum*wheatlb;
        int result1 = sum*wheatkg;
        editTextWheat.setText(result+"lb or" +wheatkg+"kg");

        int bean = sum*beanlb;
        int bean1=sum*beankg;
        editTextBeans.setText(bean+"lb or"+beankg+"kg");
    }

    else if (v.getId()==R.id.btnReset)
    {
        editTextNOP.setText("");
        editTextNOMS.setText("");
    }
}
}

java.lang.IllegalStateException:无法在Android.view.view$1.OnClick(view.java:4222)在Android.view.view.performClick(view.java:5156)在Android.view.view$performClick.run(view.java:20755)在Android.os.handler.handleCallback(handler.java:739)在Android.os.handler.dispatchMessage(handler.java:95)在Android.app.activitythread.main在com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:1399)在com.android.internal.os.zygoteinit.main(zygoteinit.java:1194)由:java.lang.reflect.method.invoke(原生方法)在java.lang.reflect.method.invoke(method.java:372)在android.view.view.view$1.onclick(View.java:4217)在在Android.view.view$performclick.run(view.java:20755) 在Android.os.handler.HandleCallback(handler.java:739) 在Android.os.handler.DispatchMessage(Handler.java:95) 在Android.os.looper.loop(looper.java:145), 在Android.app.activitythread.main(activitythread.java:5832) 在java.lang.reflect.Method.invoke(本机方法) 在java.lang.reflect.method.invoke(Method.java:372) 在com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:1399) 在com.android.internal.os.zygoteinit.main(zygoteinit.java:1194) 由:java.lang.nullPointerException引起:试图在 java.lang.reflect.method.invoke(本机方法)的com.example.rajafarid.hc.foodstorage.onButtonClick(Foodstorage.java:42)的空对象引用上调用虚拟方法'void Android.widget.edittext.settext(java.lang.reflect.method.invoke)在java.lang.reflect.method.invoke(Method.java:372) 在Android.view.view$1.onclick(View.java:4217) 在Android.view.view.performClick(view.java:5156) 在Android.view.view$performclick.run(view.java:20755) 在Android.os.handler.HandleCallback(handler.java:739) 在Android.os.handler.DispatchMessage(Handler.java:95) 在Android.os.looper.loop(looper.java:145), 在Android.app.activitythread.main(activitythread.java:5832) 在java.lang.reflect.Method.invoke(本机方法) 在java.lang.reflect.method.invoke(Method.java:372) 在com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:1399) 在com.android.internal.os.zygoteinit.main(zygoteinit.java:1194)

共有1个答案

咸星波
2023-03-14

应用程序由于NullPointerException而崩溃。问题是您没有初始化edittextbeansedittextbeans。您正在尝试对空引用调用setText方法。因此,正如您对其他两个TextViews所做的那样,在onCreate()中初始化这些TextViews;

@Override
protected void onCreate(Bundle b){
        editTextWheat = (EditText) findViewById(R.id.id_of_edit_text_wheat);
        editTextBeans = (EditText) findViewById(R.id.id_of_edit_text_beans);
        ........
    }

那会解决问题的

 类似资料:
  • 我已经开始做一个游戏,有点类似于“花比尔盖茨的钱”,但我说过要稍微改变一下。我做了第一项,我试着用JS编辑它,所以每次你按“买”,它会从你身上移除1美元,或者,当你按“卖”给你1美元。问题是,每次我点击,它只算一次。另外,如果我按“买进”,然后按“卖出”,它会立即给我11美元,而不是10美元。文件名:index.html 文件名:script.js

  • 问题内容: 当我运行此查询时,输出为:SUNDAY。但我们知道今天是星期二(2013年1月1日)。和 然后将查询更改为 答案是:星期二。 然后将查询更改为 答案是:星期一。 当我使用sysdate时,为什么将SUNDAY显示为输出? 我是oracle db的新手。请帮我。 问题答案: 用这个: 您正在使用此: 给您日期= 1/1/0013,即星期天

  • 我是wordpress的新手,正在尝试定义和调用一个函数,但无法让它工作。 以下代码出现在使用get_template_part从content.php文件调用的php文件中。 我在function.php文件的底部添加了以下代码: 单击该元素时,它将返回: (index): 363未捕获引用错误:没有定义check AllTopicCheckBox。 有人能帮帮我吗?

  • 问题内容: 我想在单击时运行一个简单的JavaScript函数,而无需任何重定向。 将JavaScript调用放入属性之间有什么区别或好处(如下所示: )与将其放入属性(将其绑定到事件)? 问题答案: 将href置于href中会激怒那些坚信内容与行为/行为分开的人。理由是您的html内容应仅专注于内容,而不是表示或行为。 这些天的典型路径是使用JavaScript库(例如jquery)并使用该库创

  • 问题内容: 我有一个简单的问题。我曾尝试在许多博客中搜索有关此问题的信息,但所有站点都返回了如何快速运行功能,但我需要这种情况。 我的自定义函数是: 如何通过args将args传递给其他系统函数? 谢谢前进。 问题答案: 与(Objective-)C中类似,您不能将变量参数列表直接传递给另一个函数。您必须创建一个 (与C语言中的Swift等效)并调用一个带有参数的函数。 所以这可能是您要寻找的:

  • 问题内容: 我使用Vlad Mihalcea的库来将SQL数组(在我的情况下为Postgresql)映射到JPA。然后,假设我有一个实体,例如。 适当的SQL是: 使用QueryDSL,我想获取包含所有给定标签的行。原始SQL可能是: (摘自:https : //www.postgresql.org/docs/9.1/static/functions- array.html ) 可以用QueryD

  • 问题内容: 我注意到,如果使用许多不带括号的DataFrame函数,其行为似乎类似于“属性”,例如 这是如何完成的,是一种好的做法?这是Linux上的熊猫0.15.1 问题答案: 它们是不同的,因此不建议使用,它们清楚地表明这是一种方法并且恰好输出结果,而另一种则表明了预期的输出。 这就是为什么您不应该这样做的原因: 所以好吧,您没有使用括号正确地调用该方法并看到显示为有效的输出,但是如果您引用了

  • 问题内容: 我有一个ajax脚本,我想从一个函数发布。我正在使用onlick href,但是它没有显示为undefined。这是使用WordPress的。我试图在范围内和范围外移动代码,但是我似乎仍然无法正常工作。 谢谢 :) 问题答案: 当您执行此操作时,将调用global函数。由于在函数中定义了,因此它不是全局的。因此,是(因此)。 全局变量存储在对象中。 因此,可以将其公开为全局变量: 请注