3

edittext ボックスを介してユーザーから指定された時間値を受け取り、CountDownTimer() に渡すタイマーを作成しました。このメソッドは長い値を期待しているため、長い値に変換しましたが、この長い変換を追加すると、Androidエミュレーターは残念ながら停止したエラーを表示します.そして、ここに私のコードがあります

EditText ti=(EditText)findViewById(R.id.time);
Editable i = ti.getText();
String p=i.toString();
long x=Long.parseLong(p);

final TextView mCounter1TextField=(TextView)findViewById(R.id.counter1);
final CountDownTimer Counter1 = new CountDownTimer(x, 10) {
    public void onTick(long millisUntilFinished) {
        mCounter1TextField.setText(" " + (millisUntilFinished)/ 1000 + ":");
    }

    public void onFinish() {  
        mp3.start ();      
        Log.d ("Splash", "LauncherActivity.onCreate - created MediaPlayer");
        cancel();
    }    
};

//Start Button1
btnstart.setOnClickListener(new OnClickListener(){
    public void onClick(View v) {
        Counter1.start();
    }
};
4

2 に答える 2

3

続行するエラーがなければ、最初に気付いたのは、 NumberFormatException をキャッチしていないことですparseLong()

long x=0L;
try {
    x = Long.parseLong(p);
}
catch(NumberFormatException ex) {
    // TODO: error report or something
}
于 2012-08-25T06:54:21.210 に答える
0

文字列を整数に変換しようとしていると思います。最初に int に変換してから long にします。

于 2013-07-10T09:59:12.213 に答える