First

本文详述了如何在Android中自定义RadioButton的选中样式,包括利用state_checked属性结合drawable资源实现不同状态下的样式变化。同时,深入探讨了各种Dialog的创建与使用技巧,涵盖普通对话框、单选和多选列表、自定义对话框、进度条对话框、日期和时间选择器,提供丰富的代码实例。
摘要由CSDN通过智能技术生成

如何更改Radio Button的选中样式

效果描述:

Radio Button选中与未选中时显示为其他样式

效果实现原理:

通过直接在layout中设置Button的style 并附带属性 button=@null

优点:

节省代码量和时间,应用性广泛

代码:

在drawable新建 Resource File 添加代码

 <item android:drawable="@mipmap/two" android:state_checked="true" ></item>
 <item android:drawable="@mipmap/three"></item>

state_checked属性true为选中样式,false为未选中样式
drawable属性可以放置图片,但是Studio不会自动查找,需手动输入
亦可以:在drawable新建 Image Asset 中Icon Type 选择 Action Bar and Tab Icons 中进行对图标的设置与选择

Dialog对话框

对话框大致分类:

1.普通的标准对话框

AlertDialog.Builder builder1=new AlertDialog.Builder(MainActivity.this);
                builder1.setTitle("对话框1");
                builder1.setIcon(R.drawable.one);
                builder1.setMessage("123");
                builder1.setPositiveButton("ok", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        Toast.makeText(MainActivity.this,"确定",Toast.LENGTH_SHORT).show();
                    }
                });
                builder1.setNegativeButton("cancel", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        Toast.makeText(MainActivity.this,"取消",Toast.LENGTH_SHORT).show();
                    }
                });
                AlertDialog dialog1=builder1.create();
                dialog1.show();

其中 AlertDialog.Builder 是创建对话框创建者
setTitle-----设置标题
setIcon-----设置图标
setMessage-----设置内容
setPositiveButton-----确定按钮的监听器
setNegativeButton-----取消按钮的监听器
create-----创建对话框
以上方法均为 AlertDialog.Builder对象的方法

2.单选对话框

final String[] str2=new String[]{"1","2","3"};
                builder5.setSingleChoiceItems(str2, 2, new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        Toast.makeText(MainActivity.this,"选择"+str2[which],Toast.LENGTH_SHORT).show();
                    }
                });

setSingleChoiceItems-----单选列表的监听器
参数分别为 单选按钮的内容,默认选择,监听器

3.多选对话框

final String[] str=new String[]{"1","2","3"};
                final boolean[] flags=new boolean[]{false,false,false};
                builder4.setMultiChoiceItems(str, flags, new DialogInterface.OnMultiChoiceClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which, boolean isChecked) {
                        flags[which]=isChecked;
                    }
                });

boolean数组 是用来存放是否被选择的
setMultiChoiceItems-----多选列表的监听器
参数分别为 多选按钮的内容,是否被选择,监听器

4.自定义对话框 *

View view=View.inflate(MainActivity.this,R.layout.layout,null);
                Button but=view.findViewById(R.id.but);
                builder6.setView(view);
                 but.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        dialog6.dismiss();
                    }
                });

思路为: 创建相应的视图对象并通过 setView 方法传入
dismiss----对话框消失

5.进度条对话框

final ProgressDialog dialog=new ProgressDialog(this);
 dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
                dialog.setMax(100);
                final Timer timer=new Timer();
                timer.schedule(new TimerTask() {
                    int progress=0;
                    @Override
                    public void run() {
                        if(progress==100){
                            dialog.dismiss();
                            timer.cancel();
                        }
                        dialog.setProgress(progress+=20);
                    }
                },0,1000);

通过 ProgressDialog类创建该对话框,此处使用计时器来模拟效果
但是ProgressDialog类已经在level 26已经被弃用,可以用自定义代替

6.万年历对话框

 Calendar calendar1=Calendar.getInstance();
                new DatePickerDialog(MainActivity.this, new DatePickerDialog.OnDateSetListener() {
                    @Override
                    public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
                        Toast.makeText(MainActivity.this,year+"--"+(month+1)+"--"+dayOfMonth,Toast.LENGTH_SHORT).show();
                    }
                },calendar1.get(Calendar.YEAR),calendar1.get(Calendar.MONTH),calendar1.get(Calendar.DAY_OF_MONTH)).show();

创建Calendar对象
OnDateSetListener-----日历的监听器
参数为: 上下文,监听器,日历对象的年,月,日
代码较少

7.时间对话框

new TimePickerDialog(MainActivity.this, new TimePickerDialog.OnTimeSetListener() {
                    @Override
                    public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
                        Toast.makeText(MainActivity.this,hourOfDay+":"+minute,Toast.LENGTH_SHORT).show();
                    }
                },calendar2.get(Calendar.HOUR),calendar2.get(Calendar.MINUTE),true).show();

OnTimeSetListener-----时间的监听器
参数为:上下文,监听器,日历对象的小时,分钟

总结:

对话框实际只有年份及时间,还有自定义
年份以及时间的使用实际应用较少
而选择器则使用较为多,但是只是单纯的样式显示,还会有相应界面的转换

weixin073智慧旅游平台开发微信小程序+ssm后端毕业源码案例设计 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值