0

edittext が null のときに追加ボタンを押すと、コードがクラッシュします...整数を edittext から配列にコピーしようとしています...どうすればこのエラーを修正できますか? edittext
android:inputType="numberDecimal"を設定しました

try...catch を入れてもいいですか?

  public static ArrayList<Integer> pulseslist = new ArrayList<Integer>();

public int pulses1[]=null;

  private OnClickListener btnAddListener = new OnClickListener() {

        public void onClick(View v) {

            String ag=editIRpulse1.getText().toString().trim();
            if (ag!=null){
            int intag= Integer.parseInt(ag);
            if(ag.length() > 0){
                   pulseslist.add(intag); 
                   editIRpulse1.setText(""); // adds text to arraylist and make edittext blank again

            }   

            pulses1 = new int[pulseslist.size()];
            for (int i = 0; i < pulseslist.size(); i++) {
                pulses1[i] = pulseslist.get(i);
            }

            }
        }

    };
4

2 に答える 2

0

これを変える

android:inputType="numberDecimal"

android:inputType="number"

あなたはintsだけが欲しいので。また、 a を使用して atry/catchをキャッチNumberFormatExceptionし、空Stringsまたは無効な数値を防ぐ必要があります。例外をキャッチしても何もしないでください。無効な文字を入力したというメッセージをユーザーに表示する必要があります

于 2013-05-21T20:24:45.250 に答える
0

これを試して

public static ArrayList<Integer> pulseslist = new ArrayList<Integer>();

public int pulses1[]=null;

  private OnClickListener btnAddListener = new OnClickListener() {

        public void onClick(View v) {

            String ag=editIRpulse1.getText().toString();
            if (ag!=null){
            ag.trim(); //Maybe crash for this method put here........................
            int intag= Integer.parseInt(ag);
            if(ag.length() > 0){
                   pulseslist.add(intag); 
                   editIRpulse1.setText(""); // adds text to arraylist and make edittext blank again

            }   

            pulses1 = new int[pulseslist.size()];
            for (int i = 0; i < pulseslist.size(); i++) {
                pulses1[i] = pulseslist.get(i);
            }

            }
        }

    };
于 2013-05-21T20:34:04.500 に答える