--/--/-- (--) スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

スポンサー広告 |


2011/11/28 (Mon) 【Android】AlertDialogの代わりにCountDownTimerを利用する

next2color.jpg

 アクティビティの終了やファイルの削除の際に、確認ダイアログではなくトーストを出し、一定時間以内に再度同じ操作がされると実行する。以下はバックキーを3秒以内に2回押すとアクティビティを終了させるコード。AlertDialogの代わりに、CountDownTimerを利用する。個人的にはダイアログよりこちらの形で実装する方がスマートだと思う。

private boolean flag;
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
//バックキー以外が押された場合
if (keyCode != KeyEvent.KEYCODE_BACK) {
return super.onKeyDown(keyCode, event);
//バックキーが押された場合
} else {
if (flag) {
// アクティビティを終了する
finish();
} else {
Toast.makeText(this, "もう一度押すと終了します", 
Toast.LENGTH_SHORT).show();
// 終了フラグを立てる
flag = true;
// 第1引数:終了までの時間(ミリ秒)
// 第2引数:カウントダウンインターバル(ミリ秒)
new CountDownTimer(3000, 1000) {
@Override
public void onFinish() {
// 3秒後にこのメソッドの処理が行われる
// 3秒以内に再度ボタンが押されない場合はフラグを戻す
flag = false;
}
@Override
public void onTick(long millisUntilFinished) {
// 1秒毎にこのメソッド内の処理が行われる
}
}.start();
}
return true;
}
}



スポンサーサイト

CameraNext | trackback(0) | comment(0) |


| TOP | next >>

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。