簡體   English   中英

關閉自定義對話框

[英]Closing Custom Dialog Box

我在自定義對話框中使用以下代碼。

代碼在這里

我正在通過setCustomView方法使用新的布局。該布局包含一個``確定''按鈕和一個`` Cancel ''按鈕。

單擊取消時,我需要關閉對話框。

buttonCancel.setOnClickListener(new OnClickListener(){


                    @Override
                    public void onClick(View arg0) {
                        // TODO Auto-generated method stub
                        Log.d("onClick" , "YYYYY");
                        //up to this comes , here what I can wright
                    }
                });

dialogObject.dismiss();

您可以使用此方法

為什么不從此處創建自定義對話框:

http://developer.android.com/guide/topics/ui/dialogs.html#CustomLayout

解釋非常清楚,也易於實現。

嘗試這個 :

buttonCancel.setOnClickListener(new OnClickListener(){


                  @Override
                  public void onClick(View arg0) {
                     // TODO Auto-generated method stub
                     Log.d("onClick" , "YYYYY");

                     qustomDialogBuilder.dismiss();//this line will close the dialog

                  }
   });

如下所示替換您的TestDialogActivity

public class TestDialogActivity extends Activity {

    private static final String HALLOWEEN_ORANGE = "#FF7F27";
    private AlertDialog alertDialog;

    private OnClickListener mShowDialogClickListener = new OnClickListener() {
        public void onClick(View v) {

            QustomDialogBuilder qustomDialogBuilder = new QustomDialogBuilder(
                    v.getContext())
                    .setTitle("Set IP Address")
                    .setTitleColor(HALLOWEEN_ORANGE)
                    .setDividerColor(HALLOWEEN_ORANGE)
                    .setMessage("You are now entering the 10th dimension.")
                    .setCustomView(R.layout.example_ip_address_layout,
                            v.getContext())
                    .setIcon(getResources().getDrawable(R.drawable.ic_launcher));

            alertDialog=qustomDialogBuilder.create();
            qustomDialogBuilder.setAlertDialog(alertDialog);
            alertDialog.show();
        }
    };

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button bt = (Button) findViewById(R.id.button1);
        bt.setOnClickListener(mShowDialogClickListener);
    }

並替換setCustomViewQustomDialogBuilder如下所示

public QustomDialogBuilder setCustomView(int resId, final Context context) {
        View customView = View.inflate(context, resId, null);
        ((TextView)customView.findViewById(R.id.ip_text)).setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                alertDialog.dismiss();
            }
        });
        ((FrameLayout)mDialogView.findViewById(R.id.customPanel)).addView(customView);
        return this;
    }

最后QustomDialogBuilder添加到您的QustomDialogBuilder

private AlertDialog alertDialog; public void setAlertDialog(AlertDialog alertDialog) { this.alertDialog=alertDialog; }

要關閉對話框,請單擊“ IP Address文本。

使用活動類(TestDialogActivity)中的QustomDialog Source ,可以通過設置對話框的Negative和Positive按鈕來設置“ Ok”和“ Cancel”按鈕,如下所示:

private OnClickListener mShowDialogClickListener =new OnClickListener(){
    public void onClick(View v){
        QustomDialogBuilder qustomDialogBuilder = new QustomDialogBuilder(v.getContext()).
                setTitle("Set IP Address").
                setTitleColor(HALLOWEEN_ORANGE).
                setDividerColor(HALLOWEEN_ORANGE).
                setMessage("You are now entering the 10th dimension.").
                setCustomView(R.layout.example_ip_address_layout, v.getContext()).
                setIcon(getResources().getDrawable(R.drawable.ic_launcher));

        qustomDialogBuilder.setNegativeButton("Cancel", new android.content.DialogInterface.OnClickListener() {

            @Override
            public void onClick(DialogInterface dialog, int which) {
                dialog.dismiss();
            }
        });

        qustomDialogBuilder.setPositiveButton("Ok", new android.content.DialogInterface.OnClickListener() {

            @Override
            public void onClick(DialogInterface dialog, int which) {
                // TODO Auto-generated method stub
                /**
                 * Do something here...
                 */
            }
        });
        qustomDialogBuilder.show();
    }
};

它看起來像這樣:

在此處輸入圖片說明

希望對您有所幫助。 謝謝!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM