android 日期控件

2023-11-10

相关布局文件:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >
    
    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:background="#CDC5BF"
        
        >
        <EditText
            android:id="@+id/data"
            android:layout_weight="1"
            android:layout_height="42dp"
            android:layout_width="fill_parent"
            android:hint="在此输入查询时间"
            android:textSize="12dp" 
            android:layout_marginLeft="8dp"
            android:layout_marginRight="4dp"
           android:background="@drawable/shape"
            android:layout_marginTop="2dp"
            android:layout_marginBottom="2dp"
            android:gravity="center"
            ></EditText>
        <EditText
            android:id="@+id/address"
            android:layout_weight="1"
            android:layout_height="42dp"
            android:layout_width="fill_parent"
            android:hint="在此输入查询支行"
            android:textSize="12dp"
            android:layout_marginLeft="4dp"
            android:layout_marginRight="8dp" 
            android:layout_marginTop="2dp"
            android:layout_marginBottom="2dp"
             android:background="@drawable/shape"
             android:gravity="center"
            ></EditText>
        
    </LinearLayout>

    <ListView
        android:id="@+id/listview"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="1.0" />

</LinearLayout>


Activity源代码:

package com.activity.gdbk;

import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;

import android.app.Activity;
import android.app.DatePickerDialog;
import android.app.Dialog;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.os.Vibrator;
import android.view.LayoutInflater;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemLongClickListener;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;

//Android ListVew 点击item 显示隐匿菜单项
public class ListActivity extends Activity implements OnItemClickListener,
		OnItemLongClickListener {
	// 自定义相关组件
	private ListView listview;
	private MyAdapter adapter;
	// activity 数据源
	private List<String> data;

	// activity 标量
	private int currentPosition = -1;
	// activity 界面常量
	private static final int DATE_DIALOG_ID = 1;
	private static final int SHOW_DATAPICK = 0;
	// 日期数据变量
	private int mYear;
	private int mMonth;
	private int mDay;

	// ListActivity 相关组件
	private EditText time;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		// 全屏模式
		this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
				WindowManager.LayoutParams.FLAG_FULLSCREEN);
		this.requestWindowFeature(Window.FEATURE_NO_TITLE);
		setContentView(R.layout.activity_listview);
		initView();
		setData();
	}

	// 自定义相关方法
	private void initView() {
		// 组件实例化
		listview = (ListView) findViewById(R.id.listview);
		time = (EditText) findViewById(R.id.data);
		// 默认日期
		setDateTime();

		// 设置相关监听事件
		listview.setOnItemClickListener(this);
		listview.setOnItemLongClickListener(this);

		time.setOnClickListener(new DateButtonOnClickListener());
	}

	private void setDateTime() {
		final Calendar c = Calendar.getInstance();
		mYear = c.get(Calendar.YEAR);
		mMonth = c.get(Calendar.MONTH);
		mDay = c.get(Calendar.DAY_OF_MONTH);
		updateDisplay();
	}

	/**
	 * 更新日期
	 */
	private void updateDisplay() {
		time.setText(new StringBuilder().append(mYear).append("--")
				.append((mMonth + 1) < 10 ? "0" + (mMonth + 1) : (mMonth + 1)).append("--")
				.append((mDay < 10) ? "0" + mDay : mDay));
	}

	// 设置相关静态数据
	private void setData() {
		data = new ArrayList<String>();
		for (int i = 0; i < 10; i++) {
			data.add("员工姓名" + i);
		}
		if (adapter == null) {
			adapter = new MyAdapter(this, data);
			listview.setAdapter(adapter);
		} else {
			adapter.notifyDataSetChanged();
		}
	}

	@Override
	protected void onResume() {
		updateNoteBookList();
		super.onResume();
	}

	private void updateNoteBookList() {
		if (adapter != null) {
			setData();
			adapter.notifyDataSetChanged();
		}
	}

	// 覆写相关方法
	@Override
	public boolean onItemLongClick(AdapterView<?> arg0, View arg1,
			int position, long arg3) {
		// TODO Auto-generated method stub
		Vibrator vibrator = (Vibrator) getSystemService(VIBRATOR_SERVICE);
		vibrator.vibrate(40);
		currentPosition = position;
		adapter.notifyDataSetChanged();
		return true;
	}

	@Override
	public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
		// TODO Auto-generated method stub
		currentPosition = -1;
		adapter.notifyDataSetChanged();
	}

	// 内部类---自定义适配器
	public class MyAdapter extends BaseAdapter {
		private Context context;
		private LayoutInflater inflater;
		private List<String> fileTypeList;

		// 适配器构造函数
		public MyAdapter(Context context, List<String> fileTypeList) {
			this.context = context;
			this.fileTypeList = fileTypeList;
			inflater = LayoutInflater.from(context);
		}

		@Override
		public int getCount() {
			// TODO Auto-generated method stub
			return fileTypeList.size();
		}

		@Override
		public Object getItem(int arg0) {
			// TODO Auto-generated method stub
			return fileTypeList.get(arg0);
		}

		@Override
		public long getItemId(int position) {
			// TODO Auto-generated method stub
			return position;
		}

		@Override
		public View getView(int position, View convertView, ViewGroup parent) {
			// TODO Auto-generated method stub
			ViewHolder holder = null;
			if (convertView == null) {
				convertView = inflater.inflate(R.layout.listview_item, parent,
						false);
				holder = new ViewHolder();
				holder.fileNameText = (TextView) convertView
						.findViewById(R.id.item_name);
				holder.fileTimeText = (TextView) convertView
						.findViewById(R.id.item_time);
				holder.fileSizeText = (TextView) convertView
						.findViewById(R.id.item_pm);
				holder.linearLayout = (LinearLayout) convertView
						.findViewById(R.id.layout_other);
				holder.openLinearLayout = (LinearLayout) convertView
						.findViewById(R.id.item_open);
				holder.editLinearLayout = (LinearLayout) convertView
						.findViewById(R.id.item_edit);
				holder.moveLinearLayout = (LinearLayout) convertView
						.findViewById(R.id.item_move);
				holder.deleteLinearLayout = (LinearLayout) convertView
						.findViewById(R.id.item_delete);
				convertView.setTag(holder);
			} else {
				holder = (ViewHolder) convertView.getTag();
			}
			// 填充相关数据信息
			String strs = fileTypeList.get(position);
			holder.fileNameText.setText(strs);
			holder.fileTimeText.setText("");
			holder.fileSizeText.setText("");

			// item 显示隐藏菜单
			if (position == currentPosition) {
				holder.linearLayout.setVisibility(View.VISIBLE);
				holder.openLinearLayout.setClickable(true);
				holder.editLinearLayout.setClickable(true);
				holder.moveLinearLayout.setClickable(true);
				holder.deleteLinearLayout.setClickable(true);
				holder.openLinearLayout
						.setOnClickListener(new OnClickListener() {

							@Override
							public void onClick(View v) {
								// 饼状图页面

								Intent pie = new Intent(ListActivity.this,
										PieActivity.class);
								startActivity(pie);
							}
						});
				holder.editLinearLayout
						.setOnClickListener(new OnClickListener() {

							@Override
							public void onClick(View v) {
								// TODO Auto-generated method stub
								// 柱状图页面

								Intent intent = new Intent(ListActivity.this,
										BarActivity.class);
								startActivity(intent);

							}
						});
				holder.moveLinearLayout
						.setOnClickListener(new OnClickListener() {

							@Override
							public void onClick(View v) {
								// 散点图页面

								Intent scatter = new Intent(ListActivity.this,
										ScatterAtivity.class);
								startActivity(scatter);

							}
						});
				holder.deleteLinearLayout
						.setOnClickListener(new OnClickListener() {

							@Override
							public void onClick(View v) {
								// TODO Auto-generated method stub
								// //折线图页面

								Intent linear = new Intent(ListActivity.this,
										LinearActivity.class);
								startActivity(linear);

							}
						});
			} else {
				holder.linearLayout.setVisibility(View.GONE);
				holder.openLinearLayout.setClickable(false);
				holder.editLinearLayout.setClickable(false);
				holder.moveLinearLayout.setClickable(false);
				holder.deleteLinearLayout.setClickable(false);
			}

			return convertView;
		}

	}

	// 内部类-----自定义组件

	public class ViewHolder {
		public TextView fileNameText;
		public TextView fileTimeText;
		public TextView fileSizeText;
		public LinearLayout linearLayout;
		public LinearLayout openLinearLayout;
		public LinearLayout editLinearLayout;
		public LinearLayout moveLinearLayout;
		public LinearLayout deleteLinearLayout;

	}

	// 自定义 监听事件
	/**
	 * 选择日期Button的事件处理
	 * 
	 * @author Raul
	 * 
	 */

	class DateButtonOnClickListener implements

	android.view.View.OnClickListener {

		@Override
		public void onClick(View v) {

			Message msg = new Message();

			if (time.equals((EditText) v)) {

				msg.what = ListActivity.SHOW_DATAPICK;

			}

			ListActivity.this.saleHandler.sendMessage(msg);

		}

	}

	// ListActivity 主线程
	/**
	 * 处理日期控件的Handler
	 */

	Handler saleHandler = new Handler() {
		@Override
		public void handleMessage(Message msg) {
			switch (msg.what) {
			case ListActivity.SHOW_DATAPICK:
				showDialog(DATE_DIALOG_ID);
				break;
			}
		}
	};

	/**
	 * 日期控件的事件
	 */

	private DatePickerDialog.OnDateSetListener mDateSetListener = new DatePickerDialog.OnDateSetListener() {
		public void onDateSet(DatePicker view, int year, int monthOfYear,
				int dayOfMonth) {
			mYear = year;
			mMonth = monthOfYear;
			mDay = dayOfMonth;
			updateDisplay();

		}

	};

	@Override
	protected Dialog onCreateDialog(int id) {
		switch (id) {
		case DATE_DIALOG_ID:
			return new DatePickerDialog(this, mDateSetListener, mYear, mMonth,
					mDay);

		}
		return null;
	}

	@Override
	protected void onPrepareDialog(int id, Dialog dialog) {
		switch (id) {
		case DATE_DIALOG_ID:
			((DatePickerDialog) dialog).updateDate(mYear, mMonth, mDay);
			break;
		}
	}

}

效果展示:


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

android 日期控件 的相关文章

  • android.app包---------ActivityManager类介绍

    ActivityManager类介绍 ActivityManager与系统与所有正在运行Activity进行交互 相关方法介绍 getDeviceConfigurationInfo 获取设备配置属性值 getMemoryClass 返回当前
  • 使用fastboot工具刷入recovery.img、boot.img、system.img等

    下载解压 fastboot工具 解压FastBoot工具 zip 将解压得到的 FastBoot文件夹复制到任意盘如 D盘 将要刷入手机的recovery img recovery img等放到FastBoot文件夹 安装好手机型号对应的U
  • Android 3D滑动菜单完全解析,实现推拉门式的立体特效

    转载请注明出处 http blog csdn net guolin blog article details 10471245 在上一篇文章中 我们学习了Camera的基本用法 并借助它们编写了一个例子 实现了类似于API Demos里的图
  • UncaughtExceptionHandler示例使用

    概述 UncaughtExceptionHandler是用来catch线程内的没有被捕获到的exception 可以在uncaughtException方法中对这些异常进行统一处理 用法 UncaughtExceptionHandler是一
  • Android RecycleView列表使用GridLayoutManager 均分子项Item,且左右宽度相同

    1 需求描述 列表分为一列两个 两个子项宽度一致 且左右边距一样 就是要好看 子项宽度适配手机 高度适配宽度 2 问题描述 但是我们直接设置的时候 他的子项会在给他的布局的左边 于是我想到了设置下子项的左右边距 但是android手机屏幕太
  • android.accounts包

    包 android accounts 英文原文 http developer android com reference android accounts package summary html 版本 Android 4 0 r1 译者署
  • Android数据库安全解决方案,使用SQLCipher进行加解密

    转载请注明出处 http blog csdn net guolin blog article details 11952409 我们都知道 Android系统内置了SQLite数据库 并且提供了一整套的API用于对数据库进行增删改查操作 数
  • Java中的四种引用

    Java中存在四种引用 它们分别是 1 强引用 StrongReference 强引用是使用最普遍的引用 如果一个对象具有强引用 那垃圾回收器绝不会回收它 当内存空间不足 Java虚拟机宁愿抛出OutOfMemoryError错误 使程序异
  • Android res文件夹下资源定义及使用

    1 颜色 RGB ARGB RRGGBB AARRGGBB 颜色资源应该位于
  • Java中String类的isEmpty方法、null以及""的区别

    一直以来对String的这三个空挺晕的 刚好同事问我 我也学习下 从别人博客上看到的是这样的 isEmpty 分配了内存空间 值为空 是绝对的空 是一种有值 值 空 分配了内存空间 值为空字符串 是相对的空 是一种有值 值 空字串 null
  • android 日期控件

    相关布局文件
  • Android下拉刷新完全解析,教你如何一分钟实现下拉刷新功能

    转载请注明出处 http blog csdn net guolin blog article details 9255575 最近项目中需要用到ListView下拉刷新的功能 一开始想图省事 在网上直接找一个现成的 可是尝试了网上多个版本的
  • android.content包-----ClipboardManager

    ClipboardManager类介绍 Clipboardmanager类通过getSystemService String 方法进行实例化操作 ClipboardManger类的相关方法很简单 包含set和get剪切板的数据 剪切板的数据
  • WebView 加载不出网页,一片空白

    今天在项目上加载网页时 发现一只加载不出来 emmm 就看了下以往的项目 发现遗漏的地方不止一点哦 在此做个总结 1 权限配置 确保在 AndroidManifest xml 文件中添加了网络权限
  • android获取string.xml的值

    为什么需要把应用中出现的文字单独存放在string xml文件中呢 一 是为了国际化 当需要国际化时 只需要再提供一个string xml文件 把里面的汉子信息都修改为对应的语言 如 English 再运行程序时 android操作系统会根
  • Android Studio如何添加工程(project)为library(针对非gradle)

    这篇文章还是针对非gradle build的工程 gradle build有一些差别 在Eclipse要引用别的工程为本工程的library很简单 但是在Android Studio还是稍稍有点小复杂的 那如何引用别的工程为本工程的libr
  • Android SurfaceView

    下面就贴上一个小程序代码 主要运用SurfaceView来实现在屏幕上画一个圆 你可以通过按方向键和触摸屏幕来改变圆的位置 代码 Activity java view plain copy print package com view im
  • android.accessibilityservice包介绍

    android accessibilityservice 英文原文 http developer android com reference android accessibilityservice package summary html
  • 转载的开源干货

    android相关 第三方库 awesome android ui 大量 Android UI UX 库 大城小黄 recyclerview animators 一个关于RecyclerView items的动画库 一个简单的Recycle
  • ANDROID版本号和版本名称的重要性介绍

    转载请注明出处http blog csdn net y150481863 article details 41249159 来自 http blog csdn net y150481863 当我们在刚开始学习ANDROID的时候 可能不会过

随机推荐

  • 在Repeater控件中创建可隐藏区(原作)

    在Repeater控件中创建可隐藏区 原作 最新的一篇作品 发表在天极网上 http dev yesky com SoftChannel 72342371945218048 20041227 1893718 shtml
  • Nginx 增加二级目录的反向代理时,最常见的两个问题

    当我们想在某个Nginx网站中增加一个两级目录 当然也可以是很多级 作为反向代理时 如果使用常见的单个Nginx反向代理配置的方法 非常容易遇到配置有问题的情况 主要由如下两个问题造成 1 因为不是独立配置反向代理 所以Nginx Conf
  • 数学建模论文常用LaTeX代码(2021美赛)

    数学建模论文常用LaTeX代码 图片 单图 begin figure htbp centering includegraphics width 9 textwidth XXX pdf 图片相对位置 caption xxx 图片标题 labe
  • Ts学习笔记

    any 任何类型都可以赋值给any any也可以给任何类型赋值 unknown 任何类型可以赋值给 unknown 但是 unknown 类型赋值给其它类型需要对其进行类型缩小 type 类型一般都是大写字母开头 type Fish nam
  • 敏捷开发知识体系笔记

    敏捷开发知识体系整体框架 敏捷开发工程实践 项目管理 迭代开发 风险价值生命周期 多级项目规划 完整团队 每日站立会议 任务板 燃尽图 需求管理 需求订单 业务流程草图 用例驱动开发 用户故事 架构 演进的架构 演进的设计 基于组件的架构设
  • 同步服务器安装系统,时间同步服务器的配置方法

    知道什么是时间同步服务器的配置方法吗 下面是学习啦小编跟大家分享的是时间同步服务器的配置方法 欢迎大家来阅读学习 时间同步服务器的配置方法 方法 步骤 双击任务栏右下角 时间 打开 时间和日期 属性 设置对话框 2选择 Internet时间
  • SimpleDateFormat用法详解

    SimpleDateFormat类是一个以语言环境敏感的方式来格式化和解析日期的工具类 它允许你将日期格式化为字符串 或从字符串解析为日期 格式化日期为字符串 SimpleDateFormat sdf new SimpleDateForma
  • 在linux下编译多线程需要如下设置

    编译时这样输入命令 gcc xxx c o xxx out lpthread
  • LeetCode知识点总结 - 1710

    LeetCode 1710 Maximum Units on a Truck 考点 难度 Sorting Easy 题目 You are assigned to put some amount of boxes onto one truck
  • Xilinx 7系FPGA LVDS使用要注意了,供电不能搞错

    最近新做了一块板子 用到Spartan 7芯片对前级视频源叠加OSD菜单 前级会将HMDI转成LVDS送给FPGA处理 在原理图设计阶段没有仔细阅读fpga手册 导致LVDS BANK供电错误 应该接2 5V 实际接3 3V 且BANK供电
  • 射频与无线技术入门 读书记录

    一 基础概念 无线系统框图 瓦特W 功率测量单位 能量 功率 时间 如100W的灯泡亮了2小时 能量就是100w 2 就是200W H的能量 波段 使用字母表示一定范围的频率 载波 载波只能使用模拟信号 在这个模拟信号上承载模拟或者数字信息
  • 跨域的解决方案

    一 跨域 1 概念 指的是浏览器不能执行其他网站的脚本 它是由浏览器的同源策略造成的 是 浏览器对javascript施加的安全限制 2 同源策略 是指协议 域名 端口都要相同 其中有一个不同都会产生跨域 3 跨域流程 二 解决跨域方案 1
  • [转载] 陈皓——程序员技术练级攻略

    PS 原文出自酷壳上的陈皓对程序员从入门到精通的攻略 让你感受一下真正的大神吧 又是阿里人 他的文章真心不错 希望对你也有用 原文地址 http coolshell cn articles 4990 html 陈皓酷壳博客地址 http c
  • oracle failover mode,Oracle RAC FailOver配置

    Oracle RAC FailOver配置 Oracle RAC主要为数据库的应用提供了HA High Available 的环境 HA体现在负载均衡 loadbalance 和容错 failover 两个方面 Oracle RAC 的Fa
  • 机器学习---期望+方差+标准差+协方差

    1 期望 在概率论和统计学中 数学期望 mathematic expectation 或均值 亦简称期望 是试验中每次可能结果的概率乘以其结果的总和 是最基本的数学特征之一 它反映随机变量平均取值的大小 大数定律表明 随着重复次数接近无穷大
  • Optimal Coin Change(完全背包计数)

    题目描述 In a 10 dollar shop everything is worthy 10 dollars or less In order to serve customers more effectively at the cas
  • Java对象序列化

    Java 对象序列化 对象序列化的目标是将对象保存到磁盘中 或允许在网络中直接传输对象 对象序列化机制允许把内存中的 java 对象转换成为与平台无关的二进制流 从而允许把这种二进制流持久保存到磁盘上 实现对象序列化 该类实现接口 seri
  • texstudio与ctex_Latex的使用(Ctex+TeXstudio)

    1 下载 CTEX Latex 本来是只支持英文的 但是实在太好用了 遂结合中国的团队以及有识之士 开发了这个 CTEX CTEX 有 TexLive TexLive 为 Latex 安装包的名字 的所有内容 还包括了中文的支持 所以这里我
  • 【C++】详解inline

    2023年8月28日 周一晚上 目录 优点 缺点 使用条件 为什么调用函数会有开销 举例说明 优点 当使用inline关键字声明一个函数时 编译器会将函数体内联到所有调用该函数的地方 这可以提高执行效率 因为无需进行函数调用的开销 缺点 但
  • android 日期控件

    相关布局文件