0

三角形の面積を計算する単純な Android アプリを作成したいと考えています。2 つの textView ウィジェット、1 つの editText、および 1 つのボタンがあります。ボタンが押されると、半径値を計算する関数に半径値が渡されます。テスト目的で変数を追加して 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?
        }
    });

}
}
4

2 に答える 2

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

それ以外の場合は radius と入力したすべての場所でこれを呼び出す必要があります。

また、あなたの calculatePerimiter および calcualteArea メソッドは、渡されたパラメーターを使用していません。したがって、クラス変数 radius を取り除き、ここにあるメソッドを使用して半径を 2 つの計算に渡します。

于 2012-05-03T18:25:22.577 に答える