2012-02-21 7 views
-4

Почему мое приложение рушится? Я использую eclipse. Я не понимаю, почему он потерпел крушение. Мне все кажется прекрасным. Нет недостающих полуколинов, которые я вижу.Почему мой Android-калькулятор падает?

package rechee.cool; 

import android.app.Activity; 

import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.TextView; 




public class HelloAndroidActivity extends Activity { 
    /** Called when the activity is first created. */ 
    public EditText display; 

    double total1=0; 
    double total2=0; 
    char theOperator;  

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main);  
     display= (EditText) findViewById(R.id.editText1); 
    } 

    String display1= display.getText().toString(); 


    public void getOperator(String btnText){ 
     theOperator = btnText.charAt(0); 
     double displayValue= Double.parseDouble(display1); 
     total1+=displayValue; 
     display.setText(""); 
    } 

    public void onClick(View v) { 
     switch(v.getId()){ 
      case R.id.bOne: 
      display.append("1"); 
      break; 
     case R.id.bTwo: 
      display.append("2"); 
      break; 
     case R.id.bThree: 
      display.append("3"); 
      break; 
     case R.id.bFour: 
      display.append("4"); 
      break; 
     case R.id.bFive: 
      display.append("5"); 
      break; 
     case R.id.bSix: 
      display.append("6"); 
      break; 
     case R.id.bSeven: 
      display.append("7"); 
      break; 
     case R.id.bEight: 
      display.append("8"); 
      break; 
     case R.id.bNine: 
      display.append("9"); 
      break; 
     case R.id.bZero: 
      display.append("0"); 
      break; 
     case R.id.bPoint: 
      display.append("."); 
      break; 
     case R.id.bClear: 
      display.setText(""); 
      break; 
     case R.id.bAdd: 
      String btn_text= (String) getText(R.id.bAdd); 
      display.setText(btn_text); 
      //getOperator(display1); 
      break; 
      //case R.id.bEqual: 
     } 
    } 
} 
+4

Опубликовать стек из крушения. В противном случае мы понятия не имеем, с чего начать искать. –

+1

сообщение logcat stacktrace. – kosa

+0

как я могу опубликовать logstacktrace? – recheej

ответ

0

Чувак, вам необходимо разместить стеклянную поверхность. Мое лицо, когда нет stacktrace ->: |

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


    display= (EditText) findViewById(R.id.editText1);} // <--This curly brace is probably the problem 
    String display1= display.getText().toString(); 




    public void getOperator(String btnText){ 
     theOperator = btnText.charAt(0); 
     double displayValue= Double.parseDouble(display1); 
     total1+=displayValue; 
     display.setText(""); 
    } 
0

Я предполагаю, что вы получаете исключение NullPointerException.

String display1= display.getText().toString(); 

Эта линия фактически объявляя члена экземпляра вашего HelloAndroidActivity класса, который, при инициализации попытки, имеет в виду display, который является нулевым.

0

Я думаю, что onCreatemethod следует добавить после:

display= (EditText) findViewById(R.id.editText1); 

это:

display.setOnClickListener(this);  

, а также вы должны добавить окончательное так:

final public EditText display; 

final double total1=0; 
final double total2=0; 
final char theOperator; 
final String display1= display.getText().toString(); 

Попробуйте положить в комментариях ваш метод getOperator и посмотрите, работает ли это. О, и как сказал Гриффилд, у вас там большая ошибка. Получите текст после окрашивания экрана, например. после того, как:

display= (EditText) findViewById(R.id.editText1);

0

сделать это.

... 

String display1; 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main);  
     display= (EditText) findViewById(R.id.editText1); 
     display1= display.getText().toString() 
    } 


... 
Смежные вопросы