【问题标题】:syntax mistakes in java code in android [closed]android中java代码中的语法错误[关闭]
【发布时间】:2018-12-17 10:29:15
【问题描述】:

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

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;

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

【问题讨论】:

  • 你至少得告诉我们错误是什么。
  • btnAdd.setOnClickListener ... 应该在一个方法中,可能在onCreate

标签: java android


【解决方案1】:

就像@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)); 
        } 
    });

} 

【讨论】:

    【解决方案2】:

    这样做:- 将 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));
            }
        });
    
        }
    }
    

    【讨论】:

      【解决方案3】:

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

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

      然后将 double 变量更改为 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));
                  }
              });
          }
      }
      

      【讨论】:

      • 你的第一句话是错误的-first of all, you have to change views declaration to
      猜你喜欢
      • 2017-05-18
      • 1970-01-01
      • 1970-01-01
      • 2011-11-23
      • 2011-11-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多