Dialog

这里写图片描述

对话框案例

MainActivity

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    private Button mBtn;
    private Button mBtn1;
    private Button mBtn2;
    private Button mBtn3;
    private Button mBtn4;
    private Button mBtn5;
    private Button mBtn6;
    private Button mBtn7;
    private String[] mData = {"第一条数据", "第二条数据", "第三条数据", "第四条数据", "第五条数据", "第六条数据"};
    private String[] mSex = {"男", "女", "其他"};
    private String[] mHobby = {"篮球", "羽毛球", "乒乓球", "滑雪", "高尔夫"};
    private boolean[] mIsCheckedHobby = new boolean[mHobby.length];
    private StringBuffer hobby = null;
     private Dialog dialog;
    private Calendar mCalendar;
    private PopupWindow mPopupWindow;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mBtn = (Button) findViewById(R.id.button_dialog);
        mBtn1 = (Button) findViewById(R.id.button_dialog1);
        mBtn2 = (Button) findViewById(R.id.button_dialog2);
        mBtn3 = (Button) findViewById(R.id.button_dialog3);
        mBtn4 = (Button) findViewById(R.id.button_dialog4);
        mBtn5 = (Button) findViewById(R.id.button_dialog5);
        mBtn6 = (Button) findViewById(R.id.button_dialog6);
        mBtn7 = (Button) findViewById(R.id.button_dialog7);
        mBtn.setOnClickListener(this);
        mBtn1.setOnClickListener(MainActivity.this);
        mBtn2.setOnClickListener(MainActivity.this);
        mBtn3.setOnClickListener(MainActivity.this);
        mBtn4.setOnClickListener(this);
         mBtn5.setOnClickListener(this);
        mBtn6.setOnClickListener(this);
        mBtn7.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.dialog:
                showdialog();
                break;
            case R.id.button_dialog1:
               // showSelectedialog();
                mPopupWindow=new PopupWindow(MainActivity.this);
                View popView=getLayoutInflater().inflate(R.layout.my_popup,null);
                mPopupWindow.setWidth(ViewGroup.LayoutParams.MATCH_PARENT);
                mPopupWindow.setHeight(ViewGroup.LayoutParams.WRAP_CONTENT);
                mPopupWindow.setContentView(popView);
                mPopupWindow.setFocusable(false);
                mPopupWindow.setBackgroundDrawable(getResources().getDrawable(R.mipmap.blue));
                mPopupWindow.setOutsideTouchable(true);
                mPopupWindow.showAsDropDown(mBtn1);
                break;
            case R.id.button_dialog2:
                showSingledialog();
                break;
            case R.id.button_dialog3:
                showMultidialog();
                break;
            case R.id.button_dialog4:
                showdialog1();
                break;
            case R.id.button_dialog5:
                showMydialog();
                break;
            case R.id.button_dialog6:
                showDatedialog();
                break;
            case R.id.button_dialog7:
                showTimedialg();
                break;
            default:
                break;
        }

    }

 @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if(keyCode==KeyEvent.KEYCODE_0){
            if(mPopupWindow!=null&&mPopupWindow.isShowing()){
                mPopupWindow.dismiss();
                return true;
            }
        }
        return super.onKeyDown(keyCode, event);
    }


private void showTimedialg() {
        mCalendar = Calendar.getInstance();
        TimePickerDialog dialog = new TimePickerDialog(MainActivity.this, new TimePickerDialog.OnTimeSetListener() {
            @Override
            public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
                mCalendar.set(Calendar.HOUR, hourOfDay);
                mCalendar.set(Calendar.MINUTE, minute);
                SimpleDateFormat format = new SimpleDateFormat("HH:mm");
                Toast.makeText(getApplicationContext(), hourOfDay + ":" + minute, Toast.LENGTH_LONG).show();
//                        Toast.makeText(getApplicationContext(), "时间为:" + format.format(mCalendar.getTime()), Toast.LENGTH_SHORT).show();
            }
        }, mCalendar.get(Calendar.HOUR), mCalendar.get(Calendar.MINUTE), true);
        dialog.show();
    }

 private void showDatedialog() {
        mCalendar = Calendar.getInstance();
        DatePickerDialog dialog = new DatePickerDialog(MainActivity.this, new DatePickerDialog.OnDateSetListener() {
            @Override
            public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
                mCalendar.set(year, monthOfYear, dayOfMonth);
                SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日");
                Toast.makeText(getApplicationContext(), format.format(mCalendar.getTime()), Toast.LENGTH_SHORT).show();
            }
        }, mCalendar.get(Calendar.YEAR), mCalendar.get(Calendar.MONTH), mCalendar.get(Calendar.DAY_OF_MONTH));
        dialog.show();
    }


 private void showMydialog() {
        dialog = new Dialog(MainActivity.this, R.style.NoDialogTitle);
        LayoutInflater inflater = getLayoutInflater();
        View dialogView = inflater.inflate(R.layout.my_dialog, null);
        TextView textViewTitle = (TextView) dialogView.findViewById(R.id.textview_title);
        TextView textViewMessage = (TextView) dialogView.findViewById(R.id.textview_message);
        Button button_cancel = (Button) dialogView.findViewById(R.id.button_cancel);
        Button button_ok = (Button) dialogView.findViewById(R.id.button_ok);
        textViewTitle.setText("这是新设置的标题");
        textViewMessage.setText("这是新设置的内容");
        button_cancel.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                dialog.dismiss();
            }
        });
        button_ok.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(getApplicationContext(), "点击的是确定", Toast.LENGTH_SHORT).show();
                dialog.dismiss();
            }
        });
        dialog.setContentView(dialogView);
        dialog.show();
    }

private void showdialog1() {
        AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
        builder.setIcon(R.mipmap.ic_launcher).setTitle("我是dialog标题").setMessage("我是内容")
                .setNegativeButton("NegativeButton", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        Toast.makeText(getApplicationContext(), "点击的是NegativeButton", Toast.LENGTH_LONG).show();
                    }
                }).setNeutralButton("NeutralButton", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(getApplicationContext(), "点击的是NeutralButton", Toast.LENGTH_LONG).show();
            }
        }).setPositiveButton("PositiveButton", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(getApplicationContext(), "点击的是PositiveButton", Toast.LENGTH_LONG).show();
            }
        });
        AlertDialog dialog = builder.create();
        dialog.show();
    }
    private void showMultidialog() {
        AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
        builder.setTitle("请选择你喜欢的项目");
        builder.setMultiChoiceItems(mHobby, mIsCheckedHobby, new DialogInterface.OnMultiChoiceClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which, boolean isChecked) {
                mIsCheckedHobby[which] = isChecked;
            }
        });
        builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {

            }
        });
        builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                hobby = new StringBuffer();
                for (int i = 0; i < mIsCheckedHobby.length; i++) {
                    if (mIsCheckedHobby[i]) {
                        hobby.append(mHobby[i] + " ");
                    }
                }
                mBtn3.setText("您的爱好是:" + hobby);

            }
        });
        AlertDialog dialog = builder.create();
        dialog.show();
    }

    private void showSingledialog() {
        AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
        builder.setSingleChoiceItems(mSex, 0, new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(getApplicationContext(), "选的性别是" + mSex[which], Toast.LENGTH_LONG).show();
            }
        });
        builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {

            }
        });
        builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {

            }
        });
        AlertDialog dialog = builder.create();
        dialog.show();
    }

    private void showSelectedialog() {
        AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
        builder.setTitle("选择的dialog");
        builder.setItems(mData, new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(getApplicationContext(), "选中了第" + (which + 1) + "个", Toast.LENGTH_LONG).show();
            }
        });
        AlertDialog dialog = builder.create();
        dialog.show();
    }

    private void showdialog() {
        AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
        builder.setIcon(R.mipmap.ic_launcher).setTitle("我是dialog标题").setMessage("我是内容")
                .setNegativeButton("NegativeButton", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        Toast.makeText(getApplicationContext(), "点击的是NegativeButton", Toast.LENGTH_LONG).show();
                    }
                }).setNeutralButton("NeutralButton", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(getApplicationContext(), "点击的是NeutralButton", Toast.LENGTH_LONG).show();
            }
        }).setPositiveButton("PositiveButton", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(getApplicationContext(), "点击的是PositiveButton", Toast.LENGTH_LONG).show();
            }
        });
        AlertDialog dialog = builder.create();
        dialog.show();
    }
}

activity_main.XML

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">
<Button
    android:id="@+id/button_dialog"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="最简单的Dialog"/>

<Button
    android:id="@+id/button_dialog1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="第二个Dialog"/>
    <Button
        android:id="@+id/button_dialog2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="第三个dialog"/>
    <Button
        android:id="@+id/button_dialog3"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="第四个Dialog"/>

    <Button
        android:id="@+id/button_dialog4"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="蛋疼的Dialog"/>
</LinearLayout>

NoDialogTitle(values/strings下)

<style parent="@android:Theme.Dialog" name="NoDialogTitle">

        <item name="android:windowFrame">@null</item>

        <item name="android:windowNoTitle">true</item>

        <item name="android:windowBackground">@android:color/transparent</item>

        <item name="android:windowIsFloating">true</item>

        <item name="android:windowContentOverlay">@null</item>


    </style>

运行图

这里写图片描述

这里写图片描述
这里写图片描述

这里写图片描述

这里写图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值