Android Activity中未调用main方法

时间:2012-07-03 19:45:07

标签: java android android-lifecycle

所以我有这个代码解决了java(android开发)中的二次方程式,它没有做任何事情!我按下它时的按钮根本没有给出答案...我甚至无法检查它是否正确。

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.support.v4.app.NavUtils;

public class QuadraticEquationSolver extends Activity {
public void main(String[] args){

    Button calc = (Button) findViewById(R.id.Calculate);
    calc.setOnClickListener(new View.OnClickListener() {

        public void onClick(View arg0) {
            EditText X2 = (EditText)findViewById(R.id.X2);
            EditText X = (EditText)findViewById(R.id.X);
            EditText Num = (EditText)findViewById(R.id.Num);
            TextView ans= (TextView) findViewById(R.id.finalans);
            double x2 = Integer.parseInt(X2.getText().toString());
            double x = Integer.parseInt(X.getText().toString());
            double num = Integer.parseInt(Num.getText().toString());
            double finalNum = ((x*-1) + (Math.sqrt((x*x)-(4*x*num))))/(2*x2);
            ans.setText("answer: " + finalNum);

        }
    });
}
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_quadratic_equation_solver);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.activity_quadratic_equation_solver, menu);
    return true;
}

3 个答案:

答案 0 :(得分:6)

首先,欢迎来到Android开发。作为起点,我强烈建议您阅读SDK文档网站上的App Fundamentals及相关指南,因为它们将为您的新工作提供极大的帮助。

Android不使用单个入口点(即main方法),因此不会调用您的代码。您需要将所有代码移到onCreate()

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_quadratic_equation_solver);

    Button calc = (Button) findViewById(R.id.Calculate);
    calc.setOnClickListener(new View.OnClickListener() {

        public void onClick(View arg0) {
            EditText X2 = (EditText)findViewById(R.id.X2);
            EditText X = (EditText)findViewById(R.id.X);
            EditText Num = (EditText)findViewById(R.id.Num);
            TextView ans= (TextView) findViewById(R.id.finalans);
            double x2 = Integer.parseInt(X2.getText().toString());
            double x = Integer.parseInt(X.getText().toString());
            double num = Integer.parseInt(Num.getText().toString());
            double finalNum = ((x*-1) + (Math.sqrt((x*x)-(4*x*num))))/(2*x2);
            ans.setText("answer: " + finalNum);

        }
    });
}

答案 1 :(得分:5)

我没有做任何Android编程,但我怀疑Android会调用你的主要方法。这个main方法的内容必须在onCreate方法中。

答案 2 :(得分:4)

onCreate()是Android中的main()等效内容。永远不会调用您的main()函数。 main()的内容应该放在onCreate()