閱讀892 返回首頁    go 阿裏雲 go 技術社區[雲棲]


Android AlertDialog 獲取PositiveButton的控製權

final AlertDialog.Builder alert = new AlertDialog.Builder(
                        CloudSyncActivity.this);
                alert.setIcon(getResources().getDrawable(R.drawable.about));
                alert.setTitle("標題");
                alert.setMessage("輸入提示信息");
                alert.setPositiveButton("確認",
                        new DialogInterface.OnClickListener() {

                            @Override
                            public void onClick(DialogInterface dialog,
                                    int which) {

                               //控製點擊按鈕不消失問題
                                try
                                {
                                Field field = dialog.getClass()
                                .getSuperclass().getDeclaredField(
                                "mShowing" );
                                field.setAccessible( true );
                                // 將mShowing變量設為false,表示對話框已關閉
                                field.set(dialog, false );
                                dialog.dismiss();

                                }
                                catch (Exception e)
                                {

                                }
                            //獲取按鈕對象
                            Button PositiveButton=((AlertDialog)dialog).getButton(AlertDialog.BUTTON_POSITIVE);
                           //對按鈕進行操作
                            PositiveButton.setVisibility(View.GONE);
                      
                            }
                        });
                alert.setNegativeButton("取消",
                        new DialogInterface.OnClickListener() {

                            @Override
                            public void onClick(DialogInterface dialog,
                                    int which) {
                                try
                                {
                                Field field = dialog.getClass()
                                .getSuperclass().getDeclaredField(
                                "mShowing" );
                                field.setAccessible( true );
                                // 將mShowing變量設為false,表示對話框已關閉
                                field.set(dialog, true );
                                dialog.dismiss();

                                }
                                catch (Exception e)
                                {

                                }
                            }
                        });
                alert.show();

最後更新:2017-04-03 12:56:21

  上一篇:go AlertDialog更改標題顏色,字體等
  下一篇:go poj 1580 String Matching【gcd輾轉相除法】