最近、CountDownTimer の onTick メソッドで getView() 呼び出しが null を返すというクラッシュ レポートがありました。onTick メソッドを使用して、textView に残り時間を表示します。textView は Fragment 内にあります。
CountDownTimer は UI スレッドで実行されるため、なぜこれが起こったのかわかりません。
この問題の原因と考えられる回避策は何ですか?
ありがとう!
最近、CountDownTimer の onTick メソッドで getView() 呼び出しが null を返すというクラッシュ レポートがありました。onTick メソッドを使用して、textView に残り時間を表示します。textView は Fragment 内にあります。
CountDownTimer は UI スレッドで実行されるため、なぜこれが起こったのかわかりません。
この問題の原因と考えられる回避策は何ですか?
ありがとう!
これが私がやった方法です。TextViewを含む自分のカウンタークラスの拡張CountDownTimer。
public class myCounter extends CountDownTimer
{
TextView counter;
public myCounter(final long millisInFuture, final long countDownInterval,
final TextView newCounter)
{
super(millisInFuture, countDownInterval);
counter = newCounter;
counter.setText("Left: " + millisInFuture);
}
@Override
public void onFinish()
{
counter.setText("GO!");
}
@Override
public void onTick(final long millisUntilFinished)
{
counter.setText("Left: " + millisUntilFinished / 1000);
}
}
それから私の活動で:
public class CountdownViewActivity extends Activity
{
@Override
public void onCreate(final Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.countdownview);
final Button startBtn = (Button) findViewById(R.id.startButton);
//Send total time in milliseconds, the interval to display at, and the TextView from your xml it should display in
final myCounter countdown = new myCounter(timeInSeconds * 1000, 1000, (TextView) findViewById(R.id.textView4));
startBtn.setOnClickListener(startClick(countdown));
//MoreStuff
}
private OnClickListener startClick(final myCounter countdown)
{
return new OnClickListener()
{
@Override
public void onClick(final View v)
{
countdown.start();
}
};
}
}