有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

安卓中java代码的语法错误

我对编码非常陌生,开始学习安卓。 我在java代码(my activity.java)中遇到了一些小的语法错误 .请帮帮我。 程序将两个数字相加并显示结果

package com.example.apple.myapplication;
import 安卓.support.v7.app.AppCompatActivity;
import 安卓.os.Bundle;
import 安卓.view.View;
import 安卓.widget.Button;
import 安卓.widget.EditText;
import 安卓.widget.TextView;

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    EditText firstNumber;
    EditText secondNumber;
    TextView addResult;
    Button btnAdd;

    double num1,num2,sum;

    firstNumber = findViewById(R.id.txtNumber1);
    secondNumber = findViewById(R.id.txtNumber2);
    addResult = findViewById(R.id.txtResult);
    btnAdd = findViewById(R.id.btnAdd);

}

 btnAdd.setOnClickListener(new OnClickListener() {

 public void onClick(View v) {
    num1 = Double.parseDouble(firstNumber.getText().toString());
    num2 = Double.parseDouble(secondNumber.getText().toString());
    sum = num1 + num2;
    addResult.setText(Double.toString(sum));
    }
    });

共 (3) 个答案

  1. # 1 楼答案

    首先,您必须将视图更改为声明

    secondNumber = (EditText) findViewById(R.id.action_save);
        addResult = (TextView) findViewById(R.id.action_save);
        btnAdd = (Button) findViewById(R.id.action_save);
    

    然后将双变量更改为final。 你必须把

    btnAdd.setOnClickListener(new View.OnClickListener() {
    

    里面

    protected void onCreate(Bundle savedInstanceState) {
    

    块方法

    以下是完整代码:

    package com.example.apple.myapplication;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.TextView;
    import com.example.android.pets.R;
    
    public class MainActivity extends AppCompatActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_catalog);
    
            EditText firstNumber;
            EditText secondNumber;
            final TextView addResult;
            Button btnAdd;
    
            final double num1, num2, sum;
    
            firstNumber = (EditText) findViewById(R.id.action_save);
            secondNumber = (EditText) findViewById(R.id.action_save);
            addResult = (TextView) findViewById(R.id.action_save);
            btnAdd = (Button) findViewById(R.id.action_save);
    
    
            num1 = Double.parseDouble(firstNumber.getText().toString());
            num2 = Double.parseDouble(secondNumber.getText().toString());
            sum = num1 + num2;
    
            btnAdd.setOnClickListener(new View.OnClickListener() {
    
                public void onClick(View v) {
                    addResult.setText(Double.toString(sum));
                }
            });
        }
    }
    
  2. # 2 楼答案

    就像@NickL提到的,你的点击事件应该在一个方法中。您可以将其直接放置在onCreate中,如下所示:

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    
        Button clickButton = (Button) findViewById(R.id.clickButton);
        clickButton.setOnClickListener( new OnClickListener() { 
            @Override 
            public void onClick(View v) { 
            //Do what you want with the click here
            } 
        });
    
    }
    

    或者您可以在onCreate中调用您的方法,如下所示:

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    
        myCoolButtonMethod();
    
    }
    
    private void myCoolButtonMethod(){
    
        Button clickButton = (Button) findViewById(R.id.clickButton);
        clickButton.setOnClickListener( new OnClickListener() { 
            @Override 
            public void onClick(View v) { 
            //Do what you want with the click here
            } 
        });
    
    }
    

    您还错误地声明了您的方法,在您的情况下,它将如下所示:

    public class MainActivity extends AppCompatActivity { 
    
        EditText firstNumber; 
        EditText secondNumber; 
        TextView addResult; 
        Button btnAdd; 
        double num1,num2,sum;
    
        @Override 
        protected void onCreate(Bundle savedInstanceState) { 
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);  
            firstNumber = findViewById(R.id.txtNumber1); 
            secondNumber = findViewById(R.id.txtNumber2); 
            addResult = findViewById(R.id.txtResult); 
            btnAdd = findViewById(R.id.btnAdd);
    
            myCoolButtonMethod();
    
        }
    
        private void myCoolButtonMethod(){
        Button clickButton = (Button) findViewById(R.id.clickButton);
        clickButton.setOnClickListener( new OnClickListener() { 
            @Override 
            public void onClick(View v) { 
                num1 = Double.parseDouble(firstNumber.getText().toString()); 
                num2 = Double.parseDouble(secondNumber.getText().toString()); 
                sum = num1 + num2;
                addResult.setText(Double.toString(sum)); 
            } 
        });
    
    } 
    
  3. # 3 楼答案

    这样做:- 将onClick方法放在onCreate中

    public class MainActivity extends AppCompatActivity {
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    
        EditText firstNumber;
        EditText secondNumber;
        TextView addResult;
        Button btnAdd;
    
        double num1,num2,sum;
    
        firstNumber = findViewById(R.id.txtNumber1);
        secondNumber = findViewById(R.id.txtNumber2);
        addResult = findViewById(R.id.txtResult);
        btnAdd = findViewById(R.id.btnAdd);
    
        btnAdd.setOnClickListener(new OnClickListener() {
    
            public void onClick(View v) {
                num1 = Double.parseDouble(firstNumber.getText().toString());
                num2 = Double.parseDouble(secondNumber.getText().toString());
                sum = num1 + num2;
                addResult.setText(Double.toString(sum));
            }
        });
    
        }
    }