• 如何使当点击AlertDialog中的按钮时,AlertDialog不被dismiss掉


    //通过反射来实现 
    @Override 
        protected Dialog onCreateDialog(int id) { 
            final AlertDialog.Builder builder=new AlertDialog.Builder(this); 
            if(id==1){ 
                builder.setTitle("标题"); 
                builder.setMessage("消息"); 
                final EditText et = new EditText(this); 
                et.setWidth(LayoutParams.FILL_PARENT); 
                et.setPadding(5, 5 ,5, 5); 
                et.setTextSize(18); 
                et.setHeight(160); 
                et.setGravity(Gravity.TOP); 
                builder.setView(et); 
                final AlertDialog ad = builder.create(); 
                ad.setButton("确定", new DialogInterface.OnClickListener(){ 
                    @Override 
                    public void onClick(DialogInterface dialog, int which) { 
                        if(et.getText().toString().trim().length()==0){ 
                            try { 
                                Field field = ad.getClass().getSuperclass() 
                                        .getDeclaredField("mShowing"); 
                                field.setAccessible(true); 
                                field.set(ad, false); 
                            } catch (Exception e) { 
                                e.printStackTrace(); 
                            } 
                        } 
                    }}); 
                ad.setButton2("取消",new DialogInterface.OnClickListener(){ 
                    @Override 
                    public void onClick(DialogInterface dialog, int which) { 
                        try { 
                            Field field = ad.getClass().getSuperclass() 
                                    .getDeclaredField("mShowing"); 
                            field.setAccessible(true); 
                            field.set(ad, true); 
                        } catch (Exception e) { 
                            e.printStackTrace(); 
                        } 
                    }}); 
    
                return ad; 
            } 
            return super.onCreateDialog(id); 
        }
  • 相关阅读:
    Intern Day42
    Intern Day42
    Intern Day42
    Intern Day40
    腾讯PC客户端二面
    面试
    面试
    面试
    计算机网络
    计算机网络
  • 原文地址:https://www.cnblogs.com/ihou/p/2092432.html
Copyright © 2020-2023  润新知