Java 矩形计算器应用程序
我想知道为什么我的计算器应用程序上的输出会给我这个消息 这可能是一些我经常看的简单的东西。我想可能是输出有错误的编辑文本,或者解析了我不需要的东西。除了将数字限制在小数点后两位之外,我还可以找到一个解决方案,但我想我还是会问的。任何提示都将不胜感激,对于android编程来说还是相当新鲜的Java 矩形计算器应用程序,java,android,Java,Android,我想知道为什么我的计算器应用程序上的输出会给我这个消息 这可能是一些我经常看的简单的东西。我想可能是输出有错误的编辑文本,或者解析了我不需要的东西。除了将数字限制在小数点后两位之外,我还可以找到一个解决方案,但我想我还是会问的。任何提示都将不胜感激,对于android编程来说还是相当新鲜的 package com.filej.calculatorapp; import android.support.v4.media.MediaBrowserServiceCompat;
package com.filej.calculatorapp;
import android.support.v4.media.MediaBrowserServiceCompat;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class CalculatorApp extends AppCompatActivity` {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_calculator_app);
EditText heightEdit = (EditText) findViewById(R.id.heightEdit);
EditText widthEdit = (EditText) findViewById(R.id.widthEdit);
TextView area = (TextView) findViewById(R.id.areaTextView);
TextView perimeter = (TextView) findViewById(R.id.perimeterTextView);
Button calculate = (Button) findViewById(R.id.calculateButton);
View view = findViewById(R.id.calculateButton);
view.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
EditText height = (EditText) findViewById(R.id.heightEdit);
EditText width = (EditText) findViewById(R.id.widthEdit);
calculateArea(height.getText().toString(), width.getText().toString());
calculatePerimeter(height.getText().toString(), width.getText().toString());
}
});
}
private void calculateArea(String cHeight, String cWidth)
{
TextView area = (TextView) findViewById(R.id.areaTextView);
int area1 = Integer.parseInt(Height)* Integer.parseInt(Width);
area.setText(String.valueOf(area));
}
private void calculatePerimeter (String dHeight, String dWidth)
{
TextView perimeter = (TextView) findViewById(R.id.perimeterTextView);
int perimeter1 = (Integer.parseInt(Height) * 2) + (Integer.parseInt(Width) * 2);
perimeter.setText(String.valueOf(perimeter));
}
}
这是我的XML
您的行,例如area.setText(String.valueOf(area))
正在将文本设置为对象的名称。您的行,例如区域.setText(String.valueOf(area))代码>正在将文本设置为对象的名称。您为编辑文本设置了错误的文本
使用
及
而不是
area.setText(String.valueOf(area));
perimeter.setText(String.valueOf(perimeter));
在本例中,面积和周长是视图,面积1和周长1是计算值您为编辑文本设置了错误的文本
使用
及
而不是
area.setText(String.valueOf(area));
perimeter.setText(String.valueOf(perimeter));
在您的示例中,面积和周长是视图,面积1和周长1是计算值您的侦听器不应该在计算按钮上而不是在该视图上吗?像这样的
calculate = (Button) findViewById(R.id.calculateButton);
calculate.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
EditText height = (EditText) findViewById(R.id.heightEdit);
EditText width = (EditText) findViewById(R.id.widthEdit);
calculateArea(height.getText().toString(), width.getText().toString());
calculatePerimeter(height.getText().toString(), width.getText().toString());
}
});
如果您将textview设置为错误的值并解析错误的变量,请尝试:
private void calculateArea(String cHeight, String cWidth)
{
TextView area = (TextView) findViewById(R.id.areaTextView);
int area1 = Integer.parseInt(cHeight)* Integer.parseInt(cWidth);
area.setText(String.valueOf(area1));
}
private void calculatePerimeter (String dHeight, String dWidth)
{
TextView perimeter = (TextView) findViewById(R.id.perimeterTextView);
int perimeter1 = (Integer.parseInt(dHeight) * 2) + (Integer.parseInt(dWidth) * 2);
perimeter.setText(String.valueOf(perimeter1));
}
您的侦听器不应该在您的计算按钮上而不是该视图上吗?像这样的
calculate = (Button) findViewById(R.id.calculateButton);
calculate.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
EditText height = (EditText) findViewById(R.id.heightEdit);
EditText width = (EditText) findViewById(R.id.widthEdit);
calculateArea(height.getText().toString(), width.getText().toString());
calculatePerimeter(height.getText().toString(), width.getText().toString());
}
});
如果您将textview设置为错误的值并解析错误的变量,请尝试:
private void calculateArea(String cHeight, String cWidth)
{
TextView area = (TextView) findViewById(R.id.areaTextView);
int area1 = Integer.parseInt(cHeight)* Integer.parseInt(cWidth);
area.setText(String.valueOf(area1));
}
private void calculatePerimeter (String dHeight, String dWidth)
{
TextView perimeter = (TextView) findViewById(R.id.perimeterTextView);
int perimeter1 = (Integer.parseInt(dHeight) * 2) + (Integer.parseInt(dWidth) * 2);
perimeter.setText(String.valueOf(perimeter1));
}
试着更具体地问你想问什么。试着更具体地问你想问什么。谢谢!我知道事情很简单。要设置允许小数的字段,我必须将Int更改为double?最后一个问题,如果是double,如何将其格式设置为四舍五入到小数点后2位?因为我知道如何执行String.format(“%s,object”)是以字符串形式执行的一种方法。我想知道有没有办法用双人床?看看吧,非常感谢!我知道事情很简单。要设置允许小数的字段,我必须将Int更改为double?最后一个问题,如果是double,如何将其格式设置为四舍五入到小数点后2位?因为我知道如何执行String.format(“%s,object”)是以字符串形式执行的一种方法。我想知道有没有办法用双人床?看看