第一天 对话框

1.简单对话框

效果如下:
在这里插入图片描述
activity_main

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">
    
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="普通按钮"
        android:onClick="ptonclick"/>
</LinearLayout>

MainActivity

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }


    public void ptonclick(View view) {
        //1.构建
        AlertDialog.Builder builder = new AlertDialog.Builder(this);


        //2.设置属性
        builder.setIcon(R.drawable.ic_launcher_background);//设置图标
        builder.setTitle("不毒反而甜透了的鹤顶红");//设置标题
        builder.setMessage("鹤顶红");//设置内容
        //设置确定按钮
        builder.setPositiveButton("上山", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which){
                Toast.makeText(MainActivity.this,"恭喜你加入组织",Toast.LENGTH_SHORT).show();
            }
        });
        //设置取消按钮
        builder.setNegativeButton("下山", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(MainActivity.this,"哈哈哈,你这辈子都逃不出组织的!!",Toast.LENGTH_SHORT).show();
            }
        });


        //3.创建对话框
        AlertDialog alertDialog = builder.create();


        //4.显示
        alertDialog.show();
    }
}

2.单选对话

效果如下:
在这里插入图片描述
activity_main

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".Main2Activity">

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="单选按钮"
        android:onClick="dxonclick"/>

</LinearLayout>

MainActivity2

public class Main2Activity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);
    }

    public void dxonclick(View view) {
        //1.构建
        AlertDialog.Builder builder = new AlertDialog.Builder(this);


        //2.设置属性
        builder.setIcon(R.drawable.ic_launcher_background);//设置图标
        builder.setTitle("见一—展正希");//设置标题
        builder.setMessage("贱贱和展希希也甜爆了");//设置内容
        //设置确定按钮
        builder.setPositiveButton("打贱贱", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(Main2Activity.this,"你被奶凶奶凶的展希希搞死了",Toast.LENGTH_SHORT).show();
            }
        });
        //设置取消按钮
        builder.setNegativeButton("打展希希", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(Main2Activity.this,"你被疯了的贱贱搞死了",Toast.LENGTH_SHORT).show();
            }
        });
        final  String[] items={"见一","展正希","多余的你"};
        //设置单选列表
        //参数一 列表 参数二 默认选中下表 参数三 事件监听
        builder.setSingleChoiceItems(items, 2, new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(Main2Activity.this, "你选中了"+items[which], Toast.LENGTH_SHORT).show();
            }
        });


        //3.创建对话框
        AlertDialog alertDialog = builder.create();


        //4.显示
        alertDialog.show();
    }
}

3.多选布局

效果如下:
在这里插入图片描述
activity_main

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".Main3Activity">

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="多选按钮"
        android:onClick="dxonclick"/>

</LinearLayout>

MainActivity3

public class Main3Activity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main3);
    }

    private void dxonclick(View view){
        final String[] items={"贺天","莫关山","见一","展正希"};
        final boolean[] flag={true,true,true,false};

        //1.构建
        AlertDialog.Builder builder = new AlertDialog.Builder(this);


        //2.设置属性
        builder.setIcon(R.drawable.ic_launcher_background);//设置图标
        builder.setTitle("十九天");//设置标题
        //设置确定按钮
        builder.setPositiveButton("ok", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                for(int i=0;i<flag.length;i++){
                    if(flag[i]){
                        Toast.makeText(Main3Activity.this,"是"+items[i],Toast.LENGTH_SHORT).show();
                    }
                }
            }
        });
        //设置取消按钮
        builder.setNegativeButton("", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(Main3Activity.this,"你取消了",Toast.LENGTH_SHORT).show();
            }
        });
        //设置对选列表
        //参数一 列表  参数二 默认选中下表  参数三 事件监听
        builder.setMultiChoiceItems(items, flag, new DialogInterface.OnMultiChoiceClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which, boolean isChecked) {
                flag[which]=isChecked;
            }
        });

        //3:使用建造者创建对话框
        AlertDialog dialog = builder.create();


        //4:显示
        dialog.show();
    }
}

4.多选布局

效果如下:
在这里插入图片描述
activity_main

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".Main4Activity"
    android:orientation="vertical"
    android:gravity="center">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="30sp"
        android:text="贺天大大啊"/>
    
    <ImageView
        android:id="@+id/image"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@mipmap/ht"
        />

</LinearLayout>

MainActivity4

public class Main4Activity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main4);

        View inflate = LayoutInflater.from(this).inflate(R.layout.activity_main4, null);
        View image = inflate.findViewById(R.id.image);
        image.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //点击图片吐司或关闭对话框
                Toast.makeText(Main4Activity.this, "MAX力爆棚的贺天", Toast.LENGTH_SHORT).show();
            }
        });


        //1.构造
        AlertDialog.Builder builder=new AlertDialog.Builder(this);


        //2.设置自定义布局
        builder.setView(inflate);


        //3.使用建造者创建对话框
        AlertDialog dialog = builder.create();


        //4.显示
        dialog.show();
    }
}

5.水平进度条对话框

效果如下:
在这里插入图片描述
activity_main

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".Main5Activity">

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="jdtonclick"
        android:text="进度条对话框"/>

</LinearLayout>

MainActivity5

public class Main5Activity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main5);
    }

    public void jdtonclick(View view) {
        //1.实例化对象
        final ProgressDialog progressDialog = new ProgressDialog(this);


        //2.设置属性
        progressDialog.setProgressStyle(progressDialog.STYLE_HORIZONTAL);//设置水平央视
        progressDialog.setMax(100);//设置进度条最大值
        progressDialog.setMessage("正在下载");


        //3.显示
        progressDialog.show();


        //4.模拟定时器
        final Timer timer = new Timer();
        timer.schedule(new TimerTask() {
            int progress=0;
            @Override
            public void run() {
                if(progress==100){
                    progressDialog.dismiss();//消失
                    timer.cancel();
                }
                progressDialog.setProgress(progress+=20);
            }
        },0,1000);//0秒后执行,每个1000毫秒执行一次
    }
}

6.圆形进度条对话框

效果如下:
在这里插入图片描述
activity_main

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".Main6Activity">

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="圆形进度条对话框"
        android:onClick="onclick"/>

</LinearLayout>

MainActivity6

public class Main6Activity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main6);
    }

    public void onclick(View view) {
        //1.实例化对象
        final ProgressDialog progressDialog = new ProgressDialog(this);


        //2.设置属性
        progressDialog.setProgressStyle(progressDialog.STYLE_SPINNER);//设置圆圈
        progressDialog.setMax(100);//设置进度条最大值
        progressDialog.setMessage("正在下载");


        //3.显示
        progressDialog.show();


        //4.模拟定时器
        final Timer timer = new Timer();
        timer.schedule(new TimerTask() {
            int progress=0;
            @Override
            public void run() {
                if(progress==100){
                    progressDialog.dismiss();//消失
                    timer.cancel();
                }
                progressDialog.setProgress(progress+=20);
            }
        },0,1000);//0秒后执行,每个1000毫秒执行一次

    }
}

7.日期选择对话框

效果如下:
在这里插入图片描述
activity_main

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".Main7Activity">

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="日期选择对话框"
        android:onClick="rqonclick"/>

</LinearLayout>

MainActivity7

public class Main7Activity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main7);
    }

    public void rqonclick(View view) {
        /**
         * context 上下文
         * listener 监听器
         * year 默认的年
         * month 默认的月
         * dayOfMonth 默认的日
         */
        Calendar instance = Calendar.getInstance();//日历对象
        new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() {
            @Override
            public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
                Toast.makeText(Main7Activity.this, year+"-"+(month+1)+"-"+dayOfMonth, Toast.LENGTH_SHORT).show();
            }
        },instance.get(Calendar.YEAR),instance.get(Calendar.MONTH),instance.get(Calendar.DAY_OF_MONTH)).show();
    }
}

8.时间选择对话框

效果如下:
在这里插入图片描述

activity_main

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".Main8Activity">

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="时间选择对话框"
        android:onClick="onclick"/>

</LinearLayout>

MainActivity8

public class Main8Activity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main8);
    }

    public void onclick(View view) {
        /**
         *  context 上下文
         *  listener 监听器
         *  hourOfDay 默认的时
         *  minute 默认的分钟
         *  is24HourView 是否采用24时禁止
         */
        Calendar instance = Calendar.getInstance();//日历对象

        //1.实例化对象
        new TimePickerDialog(this, new TimePickerDialog.OnTimeSetListener() {
            @Override
            public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
                Toast.makeText(Main8Activity.this, hourOfDay+":"+minute, Toast.LENGTH_SHORT).show();
            }
        },instance.get(Calendar.HOUR),instance.get(Calendar.MINUTE),true).show();
    }
}

自定义对话框

activity_main3

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".Main2Activity">

    <ImageView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:src="@mipmap/tp"
        />

    <Button
        android:layout_width="200dp"
        android:layout_height="wrap_content"
        android:drawableTop="@mipmap/ic_launcher_round"
        android:background="#FFF"
        android:text="页面一"
        android:layout_marginTop="640dp"
        android:onClick="onclick1"/>

    <Button
        android:layout_width="200dp"
        android:layout_height="wrap_content"
        android:drawableTop="@mipmap/ic_launcher_round"
        android:layout_marginLeft="210dp"
        android:background="#FFF"
        android:text="页面二"
        android:layout_marginTop="640dp"/>

</RelativeLayout>

activity_main3

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".Main3Activity">

    <View
        android:layout_width="match_parent"
        android:layout_height="300dp"
        android:background="#FF9800"
        />

    <ImageView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:src="@mipmap/ic_launcher_round"
        android:layout_marginTop="70dp"/>

    <TextView
        android:layout_width="200dp"
        android:layout_height="wrap_content"
        android:text="总资产(元)\n0.00"
        android:layout_marginTop="200dp"
        android:gravity="center"/>

    <TextView
        android:layout_width="200dp"
        android:layout_height="wrap_content"
        android:text="总资产(元)\n0.00"
        android:layout_marginTop="200dp"
        android:layout_marginLeft="210dp"
        android:gravity="center"/>

    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#FF9800"
        android:text="下一步"
        android:layout_marginTop="560dp"
        android:onClick="nextonclick"
        />

    <Button
        android:layout_width="200dp"
        android:layout_height="wrap_content"
        android:drawableTop="@mipmap/ic_launcher_round"
        android:background="#FFF"
        android:text="页面一"
        android:layout_marginTop="640dp"
        />

    <Button
        android:layout_width="200dp"
        android:layout_height="wrap_content"
        android:drawableTop="@mipmap/ic_launcher_round"
        android:layout_marginLeft="210dp"
        android:background="#FFF"
        android:text="页面二"
        android:layout_marginTop="640dp"
        android:onClick="onclick"/>
</RelativeLayout>

mydialog

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:gravity="center">
    
    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="280dp"
        android:orientation="vertical">

        <Button
            android:id="@+id/quxiao"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="X"
            android:background="#03A9F4"
            android:layout_marginLeft="180dp"/>

        <TextView
            android:id="@+id/title"
            android:layout_width="match_parent"
            android:layout_height="150dp"
            android:text="评价一下"
            android:background="#03A9F4"
            android:gravity="center"
            android:paddingTop="20dp"
            android:textColor="#FFF"
            android:textSize="20dp"/>

        <TextView
            android:id="@+id/text"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="喜欢吗,给个五星好评吧期待\n我们做的更好!"
            android:gravity="center"
            android:layout_marginTop="170dp"/>
        
        <Button
            android:id="@+id/isyes"
            android:layout_width="100dp"
            android:layout_height="30dp"
            android:text="我要吐槽"
            android:background="#FFF"
            android:layout_marginTop="250dp"/>

        <Button
            android:id="@+id/isno"
            android:layout_width="100dp"
            android:layout_height="30dp"
            android:text="五星好评"
            android:background="#FFF"
            android:layout_marginTop="250dp"
            android:layout_marginLeft="210dp"/>
    </RelativeLayout>

</LinearLayout>

Main2Activity

public class Main2Activity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);
    }

    public void onclick1(View view) {
        Intent intent = new Intent(Main2Activity.this, Main3Activity.class);

        startActivity(intent);
    }
}

Main3Activity

public class Main3Activity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main3);
    }

    public void onclick(View view) {
        Intent intent = new Intent(Main3Activity.this, Main2Activity.class);

        startActivity(intent);
    }

    public void nextonclick(View view) {

        MyDialog myDialog = new MyDialog(this);
        myDialog.setYesonclick(new MyDialog.Yesonclick() {
            @Override
            public void getyes() {
                Toast.makeText(Main3Activity.this, "成功", Toast.LENGTH_SHORT).show();

            }
        });
        myDialog.setNoOnclick(new MyDialog.NoOnclick() {
            @Override
            public void getno() {
                Toast.makeText(Main3Activity.this, "失败", Toast.LENGTH_SHORT).show();
            }
        });
        myDialog.setQuxiaoonclick(new MyDialog.Quxiaoonclick() {
            @Override
            public void getquxiao() {
                Toast.makeText(Main3Activity.this, "取消", Toast.LENGTH_SHORT).show();
            }
        });
        myDialog.show();
    }
}

MyDialog

public class MyDialog extends Dialog {

    private TextView title;
    private TextView text;
    private Button isyes;
    private Button isno;
    private Button quxiao;

    private String myquxiao;
    private String myyes;
    private String myno;

    public void setMyquxiao(String myquxiao) {
        this.myquxiao = myquxiao;
    }
    public void setMyyes(String myyes) {
        this.myyes = myyes;
    }

    public void setMyno(String myno) {
        this.myno = myno;
    }

    public MyDialog(Context context) {
        super(context);
    }

    private Quxiaoonclick quxiaoonclick;

    public interface Quxiaoonclick{
        void getquxiao();
    }

    public void setQuxiaoonclick(Quxiaoonclick quxiaoonclick) {
        this.quxiaoonclick = quxiaoonclick;
    }

    private Yesonclick yesonclick;

    public interface Yesonclick{
        void getyes();
    }

    public void setYesonclick(Yesonclick yesonclick) {
        this.yesonclick = yesonclick;
    }

    private NoOnclick noOnclick;

    public interface NoOnclick{
        void getno();
    }

    public void setNoOnclick(NoOnclick noOnclick) {
        this.noOnclick = noOnclick;
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.mydialog);

        title = (TextView) findViewById(R.id.title);
        text = (TextView) findViewById(R.id.text);
        isyes = (Button) findViewById(R.id.isyes);
        isyes.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Log.i("TAG","成功");
                yesonclick.getyes();
            }
        });
        isno = (Button) findViewById(R.id.isno);
        isno.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Log.i("TAG","取消");
                noOnclick.getno();
            }
        });
        quxiao = (Button) findViewById(R.id.quxiao);
        quxiao.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Quxiaoonclick.getquxiao();
                dismiss();
            }
        });


    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值