当前位置: 首页 > 面试题库 >

Android:非静态方法无法从静态上下文中引用。困惑?

束帅
2023-03-14
问题内容

我对Java和一般编程非常陌生。我为一个基本程序编写了此代码,以将用户输入的2个数字相加,并将它们加起来并显示在输出框中,但是我得到了Non-static method 'setText(java.lang.CharSequence)' cannot be referenced from a static context,但是我不知道什么是静态的

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);

抱歉,如果我非常不称职,但我搜索了一下,但我真不明白该如何解决。谢谢。


问题答案:

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

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

换行

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

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


 类似资料:
  • 我对Java和编程是非常非常新的。我写这个是为了一个basic程序来添加用户输入的2个数字,然后将它们相加并显示在输出框中,但是我得到了,但是我不知道静态的东西是什么 给出错误的行: 抱歉,如果我是非常无能,但我搜索,我不知道如何解决它。多谢了。

  • 我正在编写此代码,它显示了错误非静态方法googleapiability . isgoogleplayservicesavailable(上下文上下文)和googleapiability . get error dialog(Activity Activity,int errorCode,int requestCode)不能从静态上下文中引用。

  • 我正在尝试编写一段代码,当我选中两个复选框中的一个复选框时,它将更改我选择按钮时显示的消息。 我收到的错误消息是: "FirstWindow.java:12:错误:不能从静态上下文消息中引用非静态变量消息="good job\n";" 对于第12、37、53、57行。我已尝试在main中声明字符串变量,但我只会收到错误: “FirstWindow。java:38:错误:从内部类引用的局部变量必须是

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

  • 问题内容: 我正在使用Android Studio(测试版),并且在“ onCreateView()”中使用此Java代码时,出现错误。 这是错误: 我该如何解决? 问题答案: 假设您在活动中有一个静态片段内部类:您正在尝试调用活动的活动,而该活动不能在不包含对父级引用的静态内部类中调用。 在其中,您需要在刚膨胀的根视图上调用它,例如

  • 问题内容: 我正在玩http://www.concretepage.com/java/jdk-8/java-8-unaryoperator- binaryoperator- example中的 示例。 我真正感到困惑的是,当我在形成收集器时错误地将错误的类型放到一个泛型中时,java编译器给了我一个非常令人误解的信息: 无法从静态上下文引用非静态方法 我的错误与现实中的静态vs实例上下文无关: 我