基本控件案例集锦(下)

news/2024/5/18 4:01:26/文章来源:https://blog.csdn.net/weixin_41957626/article/details/127169060

基本控件案例集锦(下)

DatePicker,TimePicker,AlertDialoig

1.DatePicker

1.1简介

1.简介:

  • Android为用户提供显示日期与时间的控件DatePickerTimePicker
    日期选择控件(DatePicker)主要功能是向用户提供包含年、月、日的日期数据并允许用户对其进行修改
  • 时间选择控件(TimePicker)向用户显示一天中的时间(可以为24小时制,也可以为AM/PM),并允许用户进行选择。

1.2样式

1.常见的两种样式?

  • calendar模式或spinner模式

2.注意:

android:calendarViewShown用于设置是否显示calendar

  • android:datePickerMode=“spinner”(或者calendar)
    如果是spinner,需要加属性:
  • android:calendarViewShown="false"

1.3属性

1.常见的属性:

如果不设置初始日期则按照系统日期

1.4事件监听

注意:对于Java中初始化年份需要+1900年,因为Java中的年份是默认加上1900年。

1.如何设置对应的事件监听?

如果要捕获用户修改日期选择控件中数据的事件,需要为DatePicker添加onDateChangedListener监听器,实现OnDateChangeListner()方法。
public abstract void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth)

2.参数解释:
view 与监听器关联的视图。
year 用户设置的年。
monthOfYear 用户设置的月份(0-11),与Calendar兼容。
dayOfMonth 用户设置的日期。

1.5案例1-实时的显示当前的时间和日期

DateandTimeActivityDemo.java

1.第一步:创建布局文件

<?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" ><!--   1.--><DatePickerandroid:id="@+id/date"android:layout_width="wrap_content"android:layout_height="wrap_content"android:calendarViewShown="false"android:datePickerMode="spinner"/>
<!--   2.--><TimePickerandroid:id="@+id/time"android:layout_width="wrap_content"android:layout_height="wrap_content"android:timePickerMode="spinner"/><!--   3.--><EditTextandroid:id="@+id/et"android:layout_width="fill_parent"android:layout_height="wrap_content"/>
</LinearLayout>

第二步:创建activity

package com.example.basecontrols3;import android.os.Bundle;
import android.app.Activity;
import android.widget.DatePicker;
import android.widget.DatePicker.OnDateChangedListener;
import android.widget.EditText;
import android.widget.TimePicker.OnTimeChangedListener;import android.widget.TimePicker;
//DatePicker案例
public class DateandTimeActivityDemo extends Activity {
// 1.设置对象DatePicker datePicker = null;TimePicker timePicker = null;EditText eText = null;protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.dateandtimedemo);
//    2.获取对象eText = (EditText) findViewById(R.id.et);datePicker = (DatePicker) findViewById(R.id.date);timePicker = (TimePicker) findViewById(R.id.time);
//    3.设置24小时显示timePicker.setIs24HourView(true);
//    4.设置时间的监听timePicker.setOnTimeChangedListener(new OnSetTimeListener());
//    5.初始化当前的日期datePicker.init(this.datePicker.getYear(), this.datePicker.getMonth(),this.datePicker.getDayOfMonth(), new OnDateChangeListener());//    datePicker.init(1995,4,14,new OnDateChangeListener());//设置默认时间
//    timePicker.setCurrentHour(12);
//    timePicker.setCurrentMinute(45);//设置默认日期
//     datePicker.updateDate(1997,4, 25);}//    6.获取当前的日期+时间private void setDateTime() {this.eText.setText((this.datePicker.getYear() + "-"+ (this.datePicker.getMonth() + 1) + "-"+ this.datePicker.getDayOfMonth() + "  "+ this.timePicker.getCurrentHour() + ":" + this.timePicker.getCurrentMinute()));}
// 4.1时间的监听(时间发生变化更新editText中的内容)class OnSetTimeListener implements  OnTimeChangedListener{public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {DateandTimeActivityDemo.this.setDateTime();}}
// 5.1日期的监听(发生变化就去更新editText中的内容)class OnDateChangeListener implements OnDateChangedListener {public void onDateChanged(DatePicker view, int year, int monthOfYear,int dayOfMonth) {DateandTimeActivityDemo.this.setDateTime();}}
}

效果图:

2.TimePicker

2.1简介

1.用于时间的显示。

2.2常见的方法

1.常见的方法:

如果没有设置是否24小时制,则默认是12小时制,分上午,下午

2.3样式

1.常见的有两种样式?

  • android:timePickerMode=“spinner”(或clock)

2.4事件监听

1.简介:如果要捕获用户修改时间数据的事件,则需要为TimePicker添加OnTimeChangedListener监听器,实现onTimeChanged()方法。

2.方法介绍:

  • public abstract void onTimeChanged (TimePicker view, int hourOfDay, int minute)
    参数解释:
  • View:与监听相关的视图。
  • hourOfDay:当前小时
  • Minute:当前分钟

2.4案例1-显示时间

1.要实现的效果:

  • 实现如图所示效果:用24小时模式显示时间。
  • 当鼠标拖动修改时间后在下面的
  • TextView中显示当前日期和时间。
  <DatePickerandroid:id="@+id/date"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:calendarViewShown="false"
android:datePickerMode="spinner"/>

2.5案例2-设置监听时间的日期

和前面的1.5中的案例是一个效果。

第一步:创建布局文件

<?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" ><!--   1.--><DatePickerandroid:id="@+id/date"android:layout_width="wrap_content"android:layout_height="wrap_content"android:calendarViewShown="false"android:datePickerMode="spinner"/>
<!--   2.--><TimePickerandroid:id="@+id/time"android:layout_width="wrap_content"android:layout_height="wrap_content"android:timePickerMode="spinner"/><!--   3.--><EditTextandroid:id="@+id/et"android:layout_width="fill_parent"android:layout_height="wrap_content"/>
</LinearLayout>

第二步:创建activity

package com.example.basecontrols3;import android.os.Bundle;
import android.app.Activity;
import android.widget.DatePicker;
import android.widget.DatePicker.OnDateChangedListener;
import android.widget.EditText;
import android.widget.TimePicker.OnTimeChangedListener;import android.widget.TimePicker;
//DatePicker案例
public class DateandTimeActivityDemo extends Activity {
// 1.设置对象DatePicker datePicker = null;TimePicker timePicker = null;EditText eText = null;protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.dateandtimedemo);
//    2.获取对象eText = (EditText) findViewById(R.id.et);datePicker = (DatePicker) findViewById(R.id.date);timePicker = (TimePicker) findViewById(R.id.time);
//    3.设置24小时显示timePicker.setIs24HourView(true);
//    4.设置时间的监听timePicker.setOnTimeChangedListener(new OnSetTimeListener());
//    5.初始化当前的日期datePicker.init(this.datePicker.getYear(), this.datePicker.getMonth(),this.datePicker.getDayOfMonth(), new OnDateChangeListener());//    datePicker.init(1995,4,14,new OnDateChangeListener());//设置默认时间
//    timePicker.setCurrentHour(12);
//    timePicker.setCurrentMinute(45);//设置默认日期
//     datePicker.updateDate(1997,4, 25);}//    6.获取当前的日期+时间private void setDateTime() {this.eText.setText((this.datePicker.getYear() + "-"+ (this.datePicker.getMonth() + 1) + "-"+ this.datePicker.getDayOfMonth() + "  "+ this.timePicker.getCurrentHour() + ":" + this.timePicker.getCurrentMinute()));}
// 4.1时间的监听(时间发生变化更新editText中的内容)class OnSetTimeListener implements  OnTimeChangedListener{public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {DateandTimeActivityDemo.this.setDateTime();}}
// 5.1日期的监听(发生变化就去更新editText中的内容)class OnDateChangeListener implements OnDateChangedListener {public void onDateChanged(DatePicker view, int year, int monthOfYear,int dayOfMonth) {DateandTimeActivityDemo.this.setDateTime();}}
}

效果图:

3.AlertDialog

3.1简介

1.AlertDialog的基本组成?

2.如何设置对应的按钮?

1.setPositiveButton(CharSequence text, DialogInterface.OnClickListener listener)
这是一个相当于OK、确定操作的按钮
2.setNegativeButton (CharSequence text, DialogInterface.OnClickListener listener)
这是一个相当于取消操作的按钮。
3. setNeutralButton (CharSequence text, DialogInterface.OnClickListener listener)
这个是相当于一个忽略操作的按钮。

3.创建AlertDialog的步骤?

  • 1、创建AlertDialog.Builder对象
  • 2、调用Builder对象的setTitle方法设置标题,setIcon方法设置图标
  • 3、调用Builder相关方法如setMessage方法、setItems方法、setSingleChoiceItems方法、setMultiChoiceItems方法、setAdapter方法、setView方法设置不同类型的对话框内容。
  • 4、调用setPositiveButton、setNegativeButton、setNeutralButton设置多个按钮
  • 5、调用Builder对象的create()方法创建AlertDialog对象
  • 6、调用AlertDialog对象的show()方法将对话框显示出来

3.2案例1-AlertDialog

View.inflate()和LayoutInflater.inflate()的区别:https://www.jianshu.com/p/dda7dfd9cd32。感谢博主。

效果图:

第一步:设置alertdialog为主启动类。

<!--        设置alertDialog为主启动类--><activity android:name=".AlertDialogDemoActivity" android:exported="true"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity>

第二步:创建布局文件。

  • 一个简单的按钮
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical"android:layout_width="match_parent"android:layout_height="match_parent"><Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/button_login"android:text="点我登录"/>
</LinearLayout>第三步:创建AlertDialog的登录页面。layout/login。设置了登录的基本界面<?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"><!--    1.第一行--><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal">
<!--1.1.用户名--><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="用户名:"android:textSize="20dp" />
<!--1.2.输入框--><EditTextandroid:id="@+id/alertdialog_et_username"android:layout_width="match_parent"android:layout_height="wrap_content" /></LinearLayout>
<!--2.第二行--><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal">
<!--2.1--><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="密    码:"android:textSize="20dp" />
<!--2.2--><EditTextandroid:id="@+id/alertdialog_et_password"android:layout_width="match_parent"android:layout_height="wrap_content" /></LinearLayout>
<!--    3.--><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal">
<!--        3.1--><LinearLayoutandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_weight="1"android:orientation="vertical">
<!--        3.1.1--><Buttonandroid:id="@+id/alertdialog_button_login"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="确认登录"android:textSize="20dp"android:layout_gravity="center_horizontal"/></LinearLayout>
<!--        3.2--><LinearLayoutandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:orientation="vertical"android:layout_weight="1">
<!--            3.2.1--><Buttonandroid:id="@+id/alertdialog_button_cancel"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="取消"android:textSize="20dp"android:layout_gravity="center_horizontal"/></LinearLayout></LinearLayout>
</LinearLayout>

第三步:创建activity。

package com.example.basecontrols3;import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;import androidx.appcompat.app.AppCompatActivity;//警示框
public class AlertDialogDemoActivity extends AppCompatActivity {
//1.按钮Button but;protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);
//        2.绑定布局setContentView(R.layout.activity_alert_dialog_demo);
//        3.获取对象but=(Button)findViewById(R.id.button_login);
//        4.设置监听but.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {
//              5. 创建对话框构建器(需要先创造一个构造器)AlertDialog.Builder builder = new AlertDialog.Builder(AlertDialogDemoActivity.this);
//              6. 获取布局
//              6.1上下文,要传入的资源id,生成的对象要不要填入父布局。下面的这个方法和LayoutInfulate的效果是一样的View view2 = View.inflate(AlertDialogDemoActivity.this, R.layout.login, null);// 获取登录布局中的控件(要根据view2的视图进行获取)final EditText username = (EditText) view2.findViewById(R.id.alertdialog_et_username);final EditText password = (EditText) view2.findViewById(R.id.alertdialog_et_password);final Button button = (Button) view2.findViewById(R.id.alertdialog_button_login);//6.2 设置参数,标题和图标builder.setTitle("Login").setIcon(R.mipmap.ic_launcher).setView(view2);
//              6.3设置按钮组builder.setPositiveButton("OK测试", new DialogInterface.OnClickListener() {public void onClick(DialogInterface dialog, int which) {Toast.makeText(AlertDialogDemoActivity.this,"我是ok测试",Toast.LENGTH_LONG).show();}});builder.setNegativeButton("Cancel测试", new DialogInterface.OnClickListener() {public void onClick(DialogInterface dialog, int which) {Toast.makeText(AlertDialogDemoActivity.this,"我是Cancel测试",Toast.LENGTH_LONG).show();}});builder.setNeutralButton("忽略测试", new DialogInterface.OnClickListener() {public void onClick(DialogInterface dialog, int which) {Toast.makeText(AlertDialogDemoActivity.this,"我是忽略测试",Toast.LENGTH_LONG).show();}});// 6.4创建对话框final AlertDialog alertDialog = builder.create();
//                7.设置按钮监听器(当点击按钮的时候就会出现一个弹窗)
//                设置的是”确认登录“的事件监听button.setOnClickListener(new View.OnClickListener() {public void onClick(View v) {
//                        7.1获取登录框中的信息String uname = username.getText().toString().trim();String psd = password.getText().toString().trim();
//                        7.2假设账号和密码if (uname.equals("root") && psd.equals("123456")) {
//                            7.2.1登录成功的提示信息Toast.makeText(AlertDialogDemoActivity.this, "登录成功",Toast.LENGTH_LONG).show();}
//                        7.2.2登录失败的提示信息(密码验证失败的提示信息,并关闭当前的窗口)Toast.makeText(AlertDialogDemoActivity.this, "登录失败", Toast.LENGTH_LONG).show();
//                          7.2.3不论登录成功还是失败,对话框都会消失alertDialog.dismiss();// 对话框消失}});
//                7.3显示登录框alertDialog.show();}});}
}

效果图:

3.3案例-第1-6种创建方式

3.3案例感谢博主:https://www.cnblogs.com/shen-hua/p/5709663.html

创建AlertDialog对象的时候不用去设置对应的布局文件就可以直接显示。

后序更新!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_18630.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JS面向对象之构造函数和原型(2)

文章目录1.构造函数1-1.使用构造函数面向对象1-2.构造函数里面的原型prototype1-3.对象原型__proto__1-4.constractor构造函数1-5.构造函数、实例、原型对象三者之间的关系1.构造函数 1-1.使用构造函数面向对象 ES6之前对象的公共部分&#xff0c;不是使用类解决的&#xff0…

沉睡者IT - [短视频运营] 抖音短视频成SEO新风口

下面会从以下5个企业关心的问题来聊聊&#xff0c;如果有什么不明白的地方可以评论交流。 一、什么是SEO? 二、为什么要做抖音SEO? ​三、哪些企业适合做抖音SEO? 四、抖音SEO怎么做? 五、影响抖音排名的因素有哪些? 一、什么是SEO? SEO是“搜索引擎优化”英文单词首字母…

C++ 函数学习笔记

前言&#xff1a;主要是自己学习过程的积累笔记&#xff0c;所以跳跃性比较强&#xff0c;建议先自学后拿来作为复习用。 文章目录1 函数基础2 参数传递2.1 const 形参和实参2.2 引用形参2.3 数组形参2.4 数组引用形参2.5 多维数组形参2.6 可变形参3 返回类型和 return 语句3.1…

ASP.NET Core--依赖注入

文章目录依赖注入什么是依赖注入什么是依赖什么是注入依赖注入解决的问题.Net Core DI替换默认服务容器依赖注入 什么是依赖注入 什么是依赖 Rely类 public class Rely {public Task Test(string testMessage){Console.WriteLine(testMessage);return Task.FromResult(0);}…

【QT学习】如何绘制圆角窗口?

文章目录前言一、实现效果二、基础知识1.QBitmap类2.QPainter类3.setMask函数三、实现代码总结前言 在使用QT创建窗口时&#xff0c;所创建出来的默认窗口都是矩形的。当我们隐藏默认标题栏&#xff0c;想自己绘制自定义的标题栏时&#xff0c;就会发现矩形的窗口过于棱角分明。…

加深印象篇之Servlet

环境配置 需要配置web.xml文件,如图所示: userServlet:是指那个继承自HttpServlet的.java文件的名称 index.jsp:是指那个随意一个.jsp文件名称即可 要使用到Servlet相关类,需要提前将相关导包导入到pom.xml文件中 相关文件的编写 1、JDBCUtils.java文件(存储连接数据库的…

(附源码)计算机毕业设计ssm大数据学院图书管理系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

web前端面试题附答案016-怎么让顶部轮播图渲染的更快?

一、为什么强调轮播图&#xff1f; 很多时候我们强调用户体验&#xff0c;而这里更多时候我们更强调完美的首屏体验&#xff0c;而现在几乎每个网站顶部第一个大模块就是轮播图。轮播图占得区域最大&#xff0c;图片质量也更高&#xff0c;几乎一张图片的面积&#xff0c;体积就…

【C语言】结构体字节对齐

目录 前言 一、什么是字节对齐&#xff1f; 二、结构体字节对齐 三、#pragma pack()的使用 总结 结语 封面 前言 本教程可能会用到一点汇编的知识&#xff0c;看不懂没关系&#xff0c;知道是那个意思就行了。使用的工具是vs2010。 一、什么是字节对齐&#xff1f; 字节…

【易购管理系统】商品列表

我们来写一下商品管理界面 在Goods.vue中 <template><div><!-- 1.搜索区域 --><div class"header"></div><!-- 2.表格区域展示视图数据 --><div class"wrapper"></div><!-- 3.分页 --></div&g…

数据分析3-pandas

文章目录pandaspandas常用数据类型1.Series的创建pandas读取外部数据pandas读取数据库DataFrame基础字典列表排序索引loc与iloc字符串离散化数据的合并pandas pandas常用数据类型 Series一维数据&#xff0c;带标签数组 DataFrame 二维&#xff0c;Series容器 import pandas …

【ElasticSearch】(分组统计,自动补全,数据同步)

分组统计&#xff0c;自动补全&#xff0c;数据同步1.分组统计1-1.聚合为桶1-2.桶内度量2.RestAPI结果条件过滤数据同步安装MQ声明交换机、队列发送MQ消息接收MQ消息搭建集群修改系统配置集群状态监控1.分组统计 桶(bucket): 桶的作用&#xff0c;是按照某种方式对数据进行分…

关苏哲-洞察问题本质,解决工作难题

高效管理者的三大技能 问题界定的6个问题 1.你所需要解决的问题是什么&#xff1f; 2.你为什么需要解决这个问题&#xff1f; 3.你期待的理想结果是什么&#xff1f; 4.这个问题包括哪些子问题&#xff1f; 5.你曾经尝试过哪些解决方式&#xff1f;其他人呢&#xff1f; 6.这个…

(机器学习-深度学习快速入门)第二章数据分析基本工具正则表达式

文章目录一&#xff1a;说明二&#xff1a;正则表达式学习建议三&#xff1a;Python正则表达式简要说明&#xff08;1&#xff09;基本匹配&#xff08;2&#xff09;元字符①&#xff1a;.号②&#xff1a;字符集③&#xff1a;重复次数④&#xff1a;{}号⑤&#xff1a;(...)…

Spring(二)- 工厂高级

八&#xff1a;控制Spring工厂创建对象的次数 为什么要控制对象创建的次数 &#xff1f; 好处&#xff1a;节省不必要的内存浪费 &#xff01; 九&#xff1a;对象的生命周期 1.什么是对象的生命周期 指的是一个对象创建&#xff0c;存活&#xff0c;消亡的一个完整过程 2.…

基于朴素贝叶斯算法对肿瘤类别分类

目录 朴素贝叶斯算法​编辑 朴素贝叶斯的三种方式 实战——肿瘤类别的分类 朴素贝叶斯算法 贝叶斯定理 贝叶斯定理&#xff08;Bayes Theorem&#xff09;也称贝叶斯公式&#xff0c;是关于随机 事件的条件概率的定理 定理内容&#xff1a; 如果随机事件A1 ,A2 ,...,An构成…

【177】Java利用JNI调用C++编写的DLL,连接海康人脸抓拍机,实现人脸库全量更新。

C开发环境&#xff1a;Visual Studio 2022、windows10 Java开发环境&#xff1a;Java8、idea、windows10 这个DLL功能&#xff0c;是输入一个设备IP&#xff0c;删除设备中的所有以前的人员资料&#xff0c;然后用文件夹中XML和图片的新人脸库资料上传到设备的人脸库中。相当于…

【MySql】常用语法及例题

文章目录字符串处理函数/正则rlikegroup_concat组合查询 & 指定选取union all字符串处理函数/正则 rlike 在MySQL中&#xff0c;RLIKE运算符用于确定字符串是否匹配正则表达式。它是REGEXP_LIKE()的同义词。 如果字符串与提供的正则表达式匹配&#xff0c;则结果为1&…

【网安神器篇】——WPScan漏洞扫描工具

作者名&#xff1a;Demo不是emo 主页面链接&#xff1a;主页传送门创作初心&#xff1a;对于计算机的学习者来说&#xff0c;初期的学习无疑是最迷茫和难以坚持的&#xff0c;中后期主要是经验和能力的提高&#xff0c;我也刚接触计算机1年&#xff0c;也在不断的探索&#xf…