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

Android:非静态方法不能从静态上下文引用。困惑?[副本]

石超
2023-03-14

我对Java和编程是非常非常新的。我写这个是为了一个basic程序来添加用户输入的2个数字,然后将它们相加并显示在输出框中,但是我得到了非静态方法'set text(java.lang.charsequence)'不能从静态上下文引用,但是我不知道静态的东西是什么

private void onClick(View v) {
    EditText input1 = (EditText) findViewById(R.id.input1);
    double calc1 =  Double.parseDouble(String.valueOf(input1));
    EditText input2 = (EditText) findViewById(R.id.input2);
    double calc2 = Double.parseDouble(String.valueOf(input2));
    double total = calc1 + calc2;
    String result = Double.toString(total);
    EditText output1 = (EditText) findViewById(R.id.output);
    EditText.setText(result);
}

给出错误的行:

EditText.setText(result);

抱歉,如果我是非常无能,但我搜索,我不知道如何解决它。多谢了。

共有2个答案

艾志尚
2023-03-14

改变

EditText.setText(result);

output1.setText(result);
左丘涵畅
2023-03-14

在静态上下文中,您没有对象(类的实例),但实例变量和方法依赖于它们。

您有一个名为output1的实例,但您尝试通过类的名称调用方法“set text”(这是一种静态方法)。

更改台词

EditText output1 = (EditText)findViewById(R.id.output);
    EditText.setText(result);

EditText output1 = (EditText)findViewById(R.id.output);
    output1.setText(result);
 类似资料:
  • 问题内容: 我对Java和一般编程非常陌生。我为一个基本程序编写了此代码,以将用户输入的2个数字相加,并将它们加起来并显示在输出框中,但是我得到了,但是我不知道什么是静态的 给出错误的行: 抱歉,如果我非常不称职,但我搜索了一下,但我真不明白该如何解决。谢谢。 问题答案: 在静态上下文中,您没有对象(类的实例),但是实例变量和方法取决于它们。 您有一个名为output1的实例,但是您尝试通过类的名

  • 问题内容: 我想一劳永逸地理解这一点。 为此,请原谅下面粘贴的大量代码,但是我不想遗漏任何细节。 我唯一更改的是加载的URL。但这不会导致错误。 我想将我的函数称为“ readPosiitons ”。简单的解决方案,使其静态。真正的解决方案,我不确定。 请帮助我更好地了解如何以正确的方式解决此错误。 谢谢!! 问题答案: 真正的解决方案?不要在方法中放太多东西。那是给菜鸟的。 Java是一种面向对

  • 所以我尝试绑定我的Numpad键,以便在计算器应用程序中使用它们,但当我尝试从主窗口以字符串形式发送keyEvent时。java到我的MainWindowController公共void方法它给了我一个错误“不能从静态上下文引用非静态方法”,即使我的类都不是静态的?以下是主窗口代码: } 这里是MainWindowController文件(看keyPress方法)

  • 我想更改FrameLayout的背景。这是我现在使用的代码: 但出现以下错误: 无法从静态上下文引用非静态方法“setBackground(android.graphics.drawable.drawable)”。 怎么了?

  • 我从这行中得到了“无法从静态上下文引用非静态方法”错误:

  • mainactivity.java: xmlReader.java: (如果需要,我也可以为station.java和dbhandler.java添加代码) 我怎样才能绕过这个编程悖论呢?我通常能为这里的任何问题找到答案,但这是我第一次找不到答案。如果你知道我错过的解决方案的链接,请在下面发布。多谢。