3

アプリの初回起動時に情報を表示するダイアログがあります。最近のユーザーなので、常にテキストを読まずに「OK」をクリックしてください。最初の 5 秒間は [OK] ボタンを無効にしたいと考えています (できれば内部にカウントダウンがある)。これはどのように達成できますか?

私のコード(あまり必要ありません):

  new AlertDialog.Builder(this)
        .setMessage("Very usefull info here!")
        .setPositiveButton("OK", new android.content.DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
             ((AlertDialog)dialog).getButton(which).setVisibility(View.INVISIBLE);
             // the rest of your stuff
        }
        })
        .show();

これが他のユーザーに役立つことを願っています。

4

2 に答える 2

11

どうぞ:

// Create a handler
Handler handler = new Handler();

// Build the dialog
AlertDialog dialog = new AlertDialog.Builder(this)
    .setMessage("Very usefull info here!")
    .setPositiveButton("OK", new android.content.DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialog, int which) {
        // the rest of your stuff
    }
})
.create();

dialog.show();

// Access the button and set it to invisible
final Button button = dialog.getButton(AlertDialog.BUTTON_POSITIVE);
button.setVisibility(View.INVISIBLE);

// Post the task to set it visible in 5000ms         
handler.postDelayed(new Runnable(){
    @Override
    public void run() {
        button.setVisibility(View.VISIBLE); 
    }}, 5000);

これにより、5 秒後にボタンが有効になります。これは少し乱雑に見えますが、機能します。よりクリーンなバージョンを持っている人なら誰でも歓迎します!

于 2013-06-08T11:22:49.103 に答える