首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >android中java代码中的语法错误

android中java代码中的语法错误
EN

Stack Overflow用户
提问于 2018-07-10 00:59:39
回答 3查看 83关注 0票数 -11

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

代码语言:javascript
复制
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));
    }
    });
EN

回答 3

Stack Overflow用户

发布于 2018-07-10 01:45:58

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

代码语言:javascript
复制
@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中调用您的方法:

代码语言:javascript
复制
@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
        } 
    });

}

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

代码语言:javascript
复制
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
EN

Stack Overflow用户

发布于 2018-07-10 01:25:20

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

代码语言:javascript
复制
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));
        }
    });

    }
}
票数 0
EN

Stack Overflow用户

发布于 2018-07-10 02:03:15

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

代码语言:javascript
复制
secondNumber = (EditText) findViewById(R.id.action_save);
    addResult = (TextView) findViewById(R.id.action_save);
    btnAdd = (Button) findViewById(R.id.action_save);

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

代码语言:javascript
复制
btnAdd.setOnClickListener(new View.OnClickListener() {

内部

代码语言:javascript
复制
protected void onCreate(Bundle savedInstanceState) {

块方法。

这是完整的代码:

代码语言:javascript
复制
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));
            }
        });
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51250617

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档