edittext崩溃的应用程序

时间:2011-12-29 12:27:38

标签: android android-edittext

我只有1个带有数字输入的edittext。问题是,假设用户输入1234 no no和afterwrds如果他想要更改它,那么当他按下del键时间时他会在2时按下并按下一个更多的时间del键,应用程序崩溃。我尝试处理如果edittext文本长度0情况下,但stil不wrkng 这是我的代码

 input.addTextChangedListener(new TextWatcher() {            
        public void onTextChanged(CharSequence s, int start, 
                                 int before, int count) 
        {
            final String in= input.getText().toString();//input is edittext
            final int j=in.length(); 
            Cursor ansof1=(Cursor) mSpinner.getSelectedItem();//1st spinner tks 1 value
            String temp=ansof1.getString(1);

            Cursor ansof2=(Cursor)mSpinner2.getSelectedItem();//for 2 spinner
            String temp2=ansof2.getString(1);
            Cursor cn = myDbHelper.selectcur(temp);
             double ans1=cn.getDouble(3);   
            Cursor cm=myDbHelper.selectcur(temp2);
            double ans2=cm.getDouble(3);
            no = Integer.parseInt(in);

        final double finalans=((ans1/ans2)*no);
        NumberFormat formatter = new DecimalFormat("##,##,###");
    if(temp.equalsIgnoreCase(temp2))
        {

            //dlgAlert.setMessage("OOpss..!! Both Currencies Are Same...!!");
            text1.setText(no+" "+temp+" "+"="+" "+no+" "+temp2);

            //dlgAlert.create().show();

        }
        else

        text1.setText(no+" "+temp+" "+"="+" "+formatter.format(finalans)+" "+temp2);


        }

        @Override
        public void afterTextChanged(Editable arg0) 
        {
            // TODO Auto-generated method stub

        }

        @Override
        public void beforeTextChanged(CharSequence s, int start, int count,
                int after)
        {
            // TODO Auto-generated method stub

        }
    });

1 个答案:

答案 0 :(得分:2)

这是因为您尝试将空字符串转换为数字。所以检查这样的字符串长度,

input.addTextChangedListener(new TextWatcher() {             
        public void onTextChanged(CharSequence s, int start,  
                                 int before, int count)  
        { 
           if(s.length()==0)
           {
                 return;
           }
           else
           {
                  // your code here
           }
}