2011-11-02 65 views
0

我有一个应用程序,我想计算编辑文本。 我有这样的代码:Android - 如何从edittext中获取文本并计算它们?

package com.minimale.cijfer; 

import android.app.Activity; 
import android.os.Bundle; 
import android.text.InputType; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.TextView; 

import com.minimale.cijfer.R; 

public class main extends Activity { 
    /** Called when the activity is first created. */ 
     EditText gehaald_een; 
     EditText gehaald_twee; 
     EditText gehaald_drie; 
     EditText gehaald_een_weging; 
     EditText gehaald_twee_weging; 
      EditText gehaald_drie_weging; 
     EditText nieuw; 
     EditText nieuw_weging; 
     EditText finalResult; 


    OnClickListener radioGroup; 


    double een; 
    double twee; 
    double drie; 
    double vier; 
    double een_c; 
    double twee_c; 
    double drie_c; 
    double nieuw_c; 
    double weging_t; 
    double answer; 


    Button addButton; 
    Button divideButton; 
    Button multiplyButton; 
    Button subtractButton; 
    Button final_calculation; 


    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     gehaald_een = (EditText)findViewById(R.id.editText1); 
     gehaald_twee = (EditText)findViewById(R.id.editText2); 
     gehaald_drie = (EditText)findViewById(R.id.editText3); 
     gehaald_een_weging = (EditText)findViewById(R.id.editText4); 
     gehaald_twee_weging = (EditText)findViewById(R.id.editText5); 
     gehaald_drie_weging = (EditText)findViewById(R.id.editText6); 
     finalResult = (EditText)findViewById(R.id.answer); 

     nieuw = (EditText)findViewById(R.id.editText7); 
     nieuw_weging = (EditText)findViewById(R.id.editText8); 


     divideButton =(Button)findViewById(R.id.button1); 
     divideButton.setOnClickListener(new DivideButtonHandler()); 




    } 


    private class DivideButtonHandler implements OnClickListener{ 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      een = Double.parseDouble(gehaald_een_weging.getText().toString()); 
      twee = Double.parseDouble(gehaald_twee_weging.getText().toString()); 
      drie = Double.parseDouble(gehaald_drie_weging.getText().toString()); 
      vier = Double.parseDouble(nieuw_weging.getText().toString()); 
      een_c = Double.parseDouble(gehaald_een.getText().toString()); 
      twee_c = Double.parseDouble(gehaald_twee.getText().toString()); 
      drie_c = Double.parseDouble(gehaald_drie.getText().toString()); 
      nieuw_c = Double.parseDouble(nieuw.getText().toString()); 
      weging_t = Double.parseDouble(nieuw_weging.getText().toString()); 


      answer = ((een + twee + drie + vier) * nieuw_c - ((een_c * een) + (twee *    twee_c))/weging_t); 
      finalResult.setText(answer + ""); 

     } 

    } 



} 

但是,当我在按钮上运行我的应用程序,并填写的EditText框,然后按,我的应用程序强制关闭。有人知道我做错了什么吗?

+1

什么是替代

finalResult.setText(answer + ""); 

出现在Logcat输出中的堆栈跟踪? –

+0

@格拉姆伯兰德我现在不怎么看,我现在有2天在我的电脑与Eclipse日志,它不同于Windows日食 – Gromdroid

+0

后ur主main.xml。必须有错误,因为我尝试了我们的代码,它对我来说工作得很好。要查看logcat输出,请从ur cmd提示符处运行adb logcat命令。 http://developer.android.com/guide/developing/tools/adb.html#logcat – Rohit

回答

2

使用

Double.valueOf(String s); 

,而不是

Double.parseDouble(); 

,并与

finalResult.setText(Double.toString(answer) + ""); 
+0

这没有奏效,仍然强行关闭 – Gromdroid

相关问题