因此,我创建了一个应用程序,其主要用途是计算三角形的面积,周长和inradius。用户应该输入三个类型为double的值。 &无论他们点击哪个按钮,都应该在结果视图中吐出答案。用户可以点击任何按钮(哪个并不重要)。如果他们先点击“区域”按钮&然后决定点击“周长”按钮,结果应该改变。下面是一张图片,让您了解它的外观:(http://tinypic.com/r/v3ncyh/8)。我不知道我是否正确编程,因为我的值看起来完全不正确&我不认为我的视图正确连接到我的代码。这段代码的第一部分是我的三角形类,它包含了我所有的用于计算面积,周长和inradius的方法,所有我的获取/设置器&。第二部分是我的活动,这是我的应用程序的主要活动(仅适用于&)。如何使用视图计算面积,周长和半径
公共类三角{
// instance variables
private double sideA;
private double sideB;
private double sideC;
// Getters and setters
public double getSideA() {
return sideA;
}
public void setSideA(double sideA) {
this.sideA = sideA;
}
public double getSide2B() {
return sideB;
}
public void setSideB(double sideB) {
this.sideB = sideB;
}
public double getSideC() {
return sideC;
}
public void setSideC(double sideC) {
this.sideC = sideC;
}
// Constructor
public Triangle(double sideA, double sideB, double sideC) {
this.sideA = sideA;
this.sideB = sideB;
this.sideC = sideC;
}
// Three methods...
public double getPerimeter() {
return sideA + sideB + sideC;
}
public double getArea() {
double s = 1/2 * (sideA + sideB + sideC);
double area = Math.sqrt(s*(s-sideA)*(s-sideB)*(s-sideC));
return area;
}
public double getInRadius() {
double r = ((-sideA + sideB + sideC)*(sideA - sideB + sideC)*(sideA + sideB - sideC))/(4*(sideA + sideB + sideC));
double answer = Math.sqrt(r);
return r;
}
}
公共类TriangleComputationActivity延伸活动{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_triangle_computation);
// Declare our View variables and assign them the Views from the layout file
final TextView lengthOne = (TextView) findViewById(R.id.lengthOne);
final TextView lengthTwo = (TextView) findViewById(R.id.lengthTwo);
final TextView lengthThree = (TextView) findViewById(R.id.lengthThree);
final TextView result = (TextView) findViewById(R.id.result);
Button areaButton = (Button) findViewById(R.id.area);
Button perimeterButton = (Button) findViewById(R.id.perimeter);
Button inradiusButton = (Button) findViewById(R.id.inradius);
final Triangle triangle = new Triangle((double)lengthOne.getInputType(), (double)lengthTwo.getInputType(),(double)lengthThree.getInputType());
// Methods in Action...
areaButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
result.setText(triangle.getArea());
}
});
perimeterButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
result.setText(triangle.getPerimeter());
}
});
inradiusButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
result.setText(triangle.getInRadius());
}
});
}
我会在哪里准确完成转换? &我已经将inputTypes设置为numberDecimal。 – Chris 2014-10-02 04:40:10
获取文本,转换为双精度,然后将双精度传递给三角构造函数。现在你正在获取'onCreate'里面的文本,而且从来没有其他地方。当用户按下一个按钮时,你可能需要一些方法来提取这些数字,否则当'onCreate'运行时,你的三角形将始终具有文本字段中的任何值。 – Karakuri 2014-10-02 12:58:57