我想构建一个简单的Android应用程序来计算三角形的区域。我有两个textView小部件,一个editText和一个按钮。按下按钮时,它会将半径值传递给计算它的函数。我添加了一个变量并将其初始化为5.0仅用于测试目的,但是我想将editText字段中的值作为半径引用。
这是我的代码。 包com.circle;
import android.app.Activity;
import android.os.Bundle;
import android.widget.*;
import android.view.*;
public class MainActivity extends Activity
{
private Button button1;
public EditText editText1;
public TextView textView1, textView2;
double radius = 5.0, area, perimeter;
public double calculateRadius(double radi)
{
area = Math.PI * (radius * radius);
return area;
}
public double calculatePerimeter(double rad)
{
perimeter = 2.0 * Math.PI * radius;
return perimeter;
}
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
this.button1 = (Button) findViewById(R.id.button1);
this.editText1 = (EditText) findViewById(R.id.editText1);
this.textView1 = (TextView) findViewById(R.id.textView1);
this.textView1 = (TextView) findViewById(R.id.textView2);
this.button1.setOnClickListener(new View.OnClickListener()
{
public void onClick(View target)
{
calculateRadius(radius); //what's wrong?
calculatePerimeter(radius); //what's wrong??
textView1.setText("" + area); //what's wrong
textView2.setText("" + perimeter); //what's wrong?
}
});
}
}
答案 0 :(得分:3)
你的问题是施放半径。执行以下操作:
就是这样。
答案 1 :(得分:2)
private double getRadius(){
double radiusValue = 0;
try{
radiusValue= Double.parseDouble(editText1.getText().toString());
catch (NumberFormatException e){
// this is not a number. tell the user something here or do something
Log.e("yourAppTag", Log.getStackTraceString(e));
}
return radiusValue;
}
你需要在你输入半径的地方调用它。
您的calculatePerimiter和calcualteArea方法也没有使用传入的参数。所以摆脱类变量radius,并使用我在这里进行两次计算的方法传入半径。