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

343*_*43N 11 java android

我对Java和编程非常陌生.我写了一个基本程序,用来添加用户输入的2个数字并将它们添加起来并在输出框中显示它们,但是我得到"非静态方法"setText(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);
    }
Run Code Online (Sandbox Code Playgroud)

给出错误的行:

    EditText.setText(result);
Run Code Online (Sandbox Code Playgroud)

对不起,如果我非常无能,但我搜索了,我真的不明白如何解决它.谢谢.

Stu*_*ske 31

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

你有一个名为output1的实例,但你尝试通过类的名称(这是一种静态方法)调用你的方法'setText'.

改变你的台词

EditText output1 = (EditText)findViewById(R.id.output);
    EditText.setText(result);
Run Code Online (Sandbox Code Playgroud)

EditText output1 = (EditText)findViewById(R.id.output);
    output1.setText(result);
Run Code Online (Sandbox Code Playgroud)


归档时间:

查看次数:

33047 次

最近记录:

6 年,3 月 前