Android Studio计算圈

时间:2015-01-15 20:09:36

标签: android android-studio geometry

我正在尝试编写一个应用程序,它允许您计算一个圆圈。我做了一个主要布局和第二个布局。主要布局:activity_main                  第二个布局:kreislay

不要对这些奇怪的词汇感到好奇,我是德国人。

这是我的代码:

public class MainActivity extends ActionBarActivity {

public Button kreisd;
public Button kugeld;
public Button kreiscalc;

public Context con;

public EditText radius_eingabe = null;

public TextView kreis_ergebnis_vol;
public TextView kreis_ergebnis_G;

public String str1;

public double st1;
public double G_kreis;
public static final double PI = 3.141592653589793d;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    final LayoutInflater factory = getLayoutInflater();
    final LayoutInflater factory_main = getLayoutInflater();
    final View view2 = factory.inflate(R.layout.kreislay, null);
    final View main_view = factory_main.inflate(R.layout.activity_main, null);

    kreisd = (Button)findViewById(R.id.kreis);
    kugeld = (Button)main_view.findViewById(R.id.kugel);



    kreiscalc = (Button)view2.findViewById(R.id.calc_kreis);

    kreisd.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            con = MainActivity.this;
            setContentView(R.layout.kreislay);
        }
    });

    kreiscalc.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            con = MainActivity.this;


            radius_eingabe = (EditText) view2.findViewById(R.id.editText);
            str1 = radius_eingabe.getText().toString();
            st1 = Double.parseDouble(str1);
            G_kreis = PI*st1*st1;
            kreis_ergebnis_G = (TextView)view2.findViewById(R.id.G_kreis);
            kreis_ergebnis_G.setText(String.valueOf(G_kreis));



        }
    });


}

我的问题是,它不起作用。当我按下按钮来计算圆圈时,虽然我输入了一个半径,但没有任何反应。 LogCat中没有错误代码。我需要帮助。我的意思是,圆的面积是= Pi * r ^ 2,不是吗? 谢谢你的关注。

1 个答案:

答案 0 :(得分:-2)

也许这个?

public static final double PI = 3.141592653589793d;

我认为最后的“d”是错误的。 希望它有所帮助