2013-07-24 2 views
-1

Я создал приложение в android, у которого есть два текста редактирования для ввода чисел и нескольких переключателей для операторов, таких как вычитание, сложение, умножение и деление, а также кнопка для вычисления результат в текстовом представлении. Мой вопрос заключается в том, что я вводил только один номер в текст редактирования, а затем нажал кнопку расчета, мой эмулятор закрыл, что делать?Показывает сообщение «К сожалению ваше приложение остановлено»

07-24 19:04:40.250: I/Choreographer(1672): Skipped 44 frames! The application may be doing too much work on its main thread. 
07-24 19:04:40.802: I/Choreographer(1672): Skipped 44 frames! The application may be doing too much work on its main thread. 
07-24 19:04:42.522: I/Choreographer(1672): Skipped 45 frames! The application may be doing too much work on its main thread. 
07-24 19:04:43.070: I/Choreographer(1672): Skipped 57 frames! The application may be doing too much work on its main thread. 
07-24 19:04:43.320: D/AndroidRuntime(1672): Shutting down VM 
07-24 19:04:43.320: W/dalvikvm(1672): threadid=1: thread exiting with uncaught exception (group=0x40a71930) 
07-24 19:04:43.439: E/AndroidRuntime(1672):  FATAL EXCEPTION: main 
07-24 19:04:43.439: E/AndroidRuntime(1672):  java.lang.NumberFormatException: Invalid int: "" 
07-24 19:04:43.439: E/AndroidRuntime(1672):  at java.lang.Integer.invalidInt(Integer.java:138) 
07-24 19:04:43.439: E/AndroidRuntime(1672):  at java.lang.Integer.parseInt(Integer.java:359) 
07-24 19:04:43.439: E/AndroidRuntime(1672):  at java.lang.Integer.parseInt(Integer.java:332) 
07-24 19:04:43.439: E/AndroidRuntime(1672):  at com.appwacky.calcumachine.MainActivity$1.onClick(MainActivity.java:61) 

07-24 19:04:43.439: E/AndroidRuntime(1672):  atAndroid.view.View.performClick(View.java:4204) 
07-24 19:04:43.439: E/AndroidRuntime(1672):  atAndroid.view.View$PerformClick.run(View.java:17355) 
07-24 19:04:43.439: E/AndroidRuntime(1672):  atAndroid.os.Handler.handleCallback(Handler.java:725) 
07-24 19:04:43.439: E/AndroidRuntime(1672):  atAndroid.os.Handler.dispatchMessage(Handler.java:92) 
07-24 19:04:43.439: E/AndroidRuntime(1672):  atAndroid.os.Looper.loop(Looper.java:137) 
07-24 19:04:43.439: E/AndroidRuntime(1672): Android.app.ActivityThread.main(ActivityThread.java:5041) 

07-24 19:04:43.439: E/AndroidRuntime(1672):  at java.lang.reflect.Method.invokeNative(Native Method) 

07-24 19:04:43.439: E/AndroidRuntime(1672):  at java.lang.reflect.Method.invoke(Method.java:511) 
07-24 19:04:43.439: E/AndroidRuntime(1672):at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 

07-24 19:04:43.439: E/AndroidRuntime(1672): at  com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 

07-24 19:04:43.439: E/AndroidRuntime(1672):  at dalvik.system.NativeStart.main(Native Method) 

! _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ _!

package com.appwacky.calcumachine; 

import org.w3c.dom.Text; 

import android.os.Bundle; 
import android.app.Activity; 
import android.view.Menu; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.RadioButton; 
import android.widget.RadioGroup; 
import android.widget.TextView; 
import android.widget.Toast; 

public class MainActivity extends Activity 
{ 

    int i,j,res; 

    EditText edt1,edt2; 
    TextView tv1; 
    RadioButton add,sub,mul,div; 
    Button b1; 



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

     edt1=(EditText)findViewById(R.id.insert1); 
     edt2=(EditText)findViewById(R.id.insert2); 

     tv1=(TextView)findViewById(R.id.textView1); 

     add=(RadioButton)findViewById(R.id.radio0); 
     sub=(RadioButton)findViewById(R.id.radio1); 
     mul=(RadioButton)findViewById(R.id.radio2); 
     div=(RadioButton)findViewById(R.id.radio3); 

     b1=(Button)findViewById(R.id.button1); 

     edt1.getText().toString(); 

     edt1.requestFocus();    
     edt2.getText().toString(); 



     b1.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) 

      { 

       if(edt1.length()==0 && edt2.length()==0) 
       { 
        Toast.makeText(getApplicationContext(), "Please enter some number", Toast.LENGTH_LONG).show(); 
       } 


       i=Integer.parseInt(edt1.getText().toString()); 
        j=Integer.parseInt(edt2.getText().toString()); 

       if (add.isChecked()) 
       { 

        res=i+j; 

        //Integer.toString(res); 

        tv1.setText(Integer.toString(res)); 

        System.out.println(tv1); 


       } 

       if (sub.isChecked()) 
       { 
        res=i-j; 

        tv1.setText(Integer.toString(res)); 
        System.out.println(tv1); 

       } 




       if(mul.isChecked()) 
       { 

        res=i*j; 

        tv1.setText(Integer.toString(res)); 
        System.out.println(tv1); 

       } 

      try{ 

       if(div.isChecked()) 
       { 
        tv1.setText(""); 
        res=i/j; 

        tv1.setText(Integer.toString(res)); 
        System.out.println(tv1); 
       } 

      } 
      catch(ArithmeticException ae) 
      { 
       System.out.println("Its an arithmatic error"); 
       Toast.makeText(getApplicationContext(), "This is against the arithmatic law", Toast.LENGTH_LONG).show(); 
      } 


      } 
     }); 






    } 


} 
+3

Скорее всего, ошибка синтаксического анализа, так как другой 'EditText' не содержит значения, но невозможно сказать без logcat и соответствующего кода. – codeMagic

+0

Требуется logcat и код, на который ссылается трассировка стека. –

+0

Пожалуйста, отправьте фрагменты кода и стоп-кадры для просмотра. Это похоже на то, что ваш механик что-то не так с вашим автомобилем, но не приносит машину. :) –

ответ

-2

Unfortunately your application has stopped - Сообщение, как первый плач ребенка, когда он приходит в мир. Ваше приложение плачет и хочет взглянуть на него от вас. :)

Jocking

пожалуйста смотрите его для использования EditText.

Шаг 1: Создайте свой экземпляр, как Edittext ed=(Edittext)findViewById(R.id.editetext1) Шаг 2: Затем вы можете использовать ed.getText();

Пожалуйста, обратите внимание, что использовать его из onClick(); метода, и если вы только создать ссылку на EditText но нет объекта, то вы не получили null pointer exception.

+0

«экземпляр», вы имеете в виду «ссылку», экземпляр на самом деле является объектом. – njzk2

+0

Да, вы правы. Я только что обновил свой ответ. – Mahmudul

+0

Фактически, когда я вводил число в один текст редактирования и не входил в другой текст редактирования .... и затем нажмите кнопку для вычисления, все приложение будет остановлено – rishiPlus

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