无法在editext中显示非常大的计算值

时间:2015-07-23 14:12:36

标签: java android android-layout

private TextView info;
private EditText input;
private Button getInfo;
long answer;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    getInfo = (Button) findViewById(R.id.button1);
    getInfo.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            input = (EditText) findViewById(R.id.editText1);
            String s2 = input.getText().toString();
            long inputNumber = Integer.parseInt(s2);
            for (int i = 0; i <= inputNumber; i++) {

                answer = fibonacci(i);
            }
            input.setText(answer + "");
        }
    });
}
public static long fibonacci(long n) {
    if (n == 0) {
        return 0;
    } else if (n == 1) {
        return 1;
    } else {
        return fibonacci(n - 1) + fibonacci(n - 2);
    }
}

我制作了一个程序,为我通过编辑文本输入的数字生成斐波纳契系列,并在edittext中显示输出值。问题是,当我输入30时,它会生成斐波纳契系列但是当我输入50或100时,应用程序没有响应,停下来。

1 个答案:

答案 0 :(得分:0)

我认为这是因为你在UI线程上有很多计算。 例如,你可以在AssyncTask中计算它。