本文章来给各位同学介绍自定义Android日期时间选择控件DateTimePickerDialog方法,有需要了解的同学不防进入参考。
Android系统提供了DatePicker、TimePicker、DatePickerDialog、TimePickerDialog控件用于日期和时间的选择和设置,但是它们都是相对独立的,不能方便的设置“yyyy-MM-dd HH:mm:ss”型日期时间,下面是使用这几种组件自定义的一个日期时间选择控件DateTimePickerDialog,可以方便的设置“yyyy-MM-dd HH:mm:ss”型日期时间,“yyyy-MM-dd”型日期和“HH:mm:ss”型时间,
代码实现:
代码如下 |
复制代码 |
DateTimePickerDialog.java
package me.gogogogo.util;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import me.gogogogo.activity.R;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.DatePickerDialog;
import android.app.TimePickerDialog;
import android.content.DialogInterface;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.DatePicker.OnDateChangedListener;
import android.widget.TimePicker;
import android.widget.TimePicker.OnTimeChangedListener;
/**
* 日期时间选择控件
* @author 大漠
*/
public class DateTimePickerDialog implements OnDateChangedListener,OnTimeChangedListener{
private DatePicker datePicker;
private TimePicker timePicker;
private AlertDialog ad;
private String dateTime;
private String initDateTime;
private Activity activity;
/**
* 日期时间弹出选择框构
* @param activity:调用的父activity
*/
public DateTimePickerDialog(Activity activity)
{
this.activity = activity;
}
public void init(DatePicker datePicker,TimePicker timePicker)
{
Calendar calendar= Calendar.getInstance();
initDateTime=calendar.get(Calendar.YEAR)+"-"+calendar.get(Calendar.MONTH)+"-"+
calendar.get(Calendar.DAY_OF_MONTH)+" "+
calendar.get(Calendar.HOUR_OF_DAY)+":"+
calendar.get(Calendar.MINUTE)+
calendar.get(Calendar.SECOND);
datePicker.init(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH),calendar.get(Calendar.DAY_OF_MONTH), this);
timePicker.setCurrentHour(calendar.get(Calendar.HOUR_OF_DAY));
timePicker.setCurrentMinute(calendar.get(Calendar.MINUTE));
}
/**
* 弹出日期时间选择框
* @param dateTimeTextEdite 需要设置的日期时间文本编辑框
* @param type: 0为日期时间类型:yyyy-MM-dd HH:mm:ss
* 1为日期类型:yyyy-MM-dd
* 2为时间类型:HH:mm:ss
* @return
*/
public AlertDialog dateTimePicKDialog(final EditText dateTimeTextEdite, int type)
{
Calendar c = Calendar.getInstance();
switch (type) {
case 1:
new DatePickerDialog(activity,
new DatePickerDialog.OnDateSetListener() {
public void onDateSet(DatePicker datePicker, int year, int monthOfYear,
int dayOfMonth) {
Calendar calendar = Calendar.getInstance();
calendar.set(datePicker.getYear(), datePicker.getMonth(),
datePicker.getDayOfMonth());
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
dateTime=sdf.format(calendar.getTime());
dateTimeTextEdite.setText(dateTime);
}
},
c.get(Calendar.YEAR),
c.get(Calendar.MONTH),
c.get(Calendar.DATE)).show();
return null;
case 2:
new TimePickerDialog(activity,
new TimePickerDialog.OnTimeSetListener() {
public void onTimeSet(TimePicker timePicker, int hourOfDay, int minute) {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR, Calendar.MONTH,
Calendar.DAY_OF_MONTH, timePicker.getCurrentHour(),
timePicker.getCurrentMinute());
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
dateTime=sdf.format(calendar.getTime());
dateTimeTextEdite.setText(dateTime);
}
},
c.get(Calendar.HOUR_OF_DAY),
c.get(Calendar.MINUTE),
true).show();
return null;
default:
LinearLayout dateTimeLayout = (LinearLayout) activity.getLayoutInflater().inflate(R.layout.datetime, null);
datePicker = (DatePicker) dateTimeLayout.findViewById(R.id.datepicker);
timePicker = (TimePicker) dateTimeLayout.findViewById(R.id.timepicker);
init(datePicker,timePicker);
timePicker.setIs24HourView(true);
timePicker.setOnTimeChangedListener(this);
ad = new AlertDialog.Builder(activity).setIcon(R.drawable.datetimeicon).setTitle(initDateTime).setView(dateTimeLayout).setPositiveButton("设置",
new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog,
int whichButton)
{
dateTimeTextEdite.setText(dateTime);
}
}).setNegativeButton("取消",
new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog,
int whichButton)
{
dateTimeTextEdite.setText("");
}
}).show();
onDateChanged(null, 0, 0, 0);
return ad;
}
}
public void onTimeChanged(TimePicker view, int hourOfDay, int minute)
{
onDateChanged(null, 0, 0, 0);
}
public void onDateChanged(DatePicker view, int year, int monthOfYear,
int dayOfMonth)
{
Calendar calendar = Calendar.getInstance();
calendar.set(datePicker.getYear(), datePicker.getMonth(),
datePicker.getDayOfMonth(), timePicker.getCurrentHour(),
timePicker.getCurrentMinute());
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
dateTime=sdf.format(calendar.getTime());
ad.setTitle(dateTime);
}
}
|
布局文件:
datetime.xml
代码如下 |
复制代码 |
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<DatePicker
android:id="@+id/datepicker"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<TimePicker
android:id="@+id/timepicker"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
</LinearLayout>
|
使用实例:
MainActivity.java
代码如下 |
复制代码 |
package me.gogogogo.activity;
import me.gogogogo.util.DateTimePickerDialog;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.EditText;
import android.app.Activity;
public class MainActivity extends Activity {
private EditText date;
private EditText time;
private EditText datetime;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
datetime = (EditText) this.findViewById(R.id.datetime);
date = (EditText) this.findViewById(R.id.date);
time = (EditText) this.findViewById(R.id.time);
datetime.setOnClickListener(new DateTimeOnClick());
date.setOnClickListener(new DateOnClick());
time.setOnClickListener(new TimeOnClick());
}
private final class DateTimeOnClick implements OnClickListener{
public void onClick(View v) {
DateTimePickerDialog dateTimePicKDialog = new DateTimePickerDialog(
MainActivity.this);
dateTimePicKDialog.dateTimePicKDialog(datetime, 0);
}
}
private final class DateOnClick implements OnClickListener{
public void onClick(View v) {
DateTimePickerDialog dateTimePicKDialog = new DateTimePickerDialog(
MainActivity.this);
dateTimePicKDialog.dateTimePicKDialog(date, 1);
}
}
private final class TimeOnClick implements OnClickListener{
public void onClick(View v) {
DateTimePickerDialog dateTimePicKDialog = new DateTimePickerDialog(
MainActivity.this);
dateTimePicKDialog.dateTimePicKDialog(time, 2);
}
}
}
|
设置之后日期时间控件效果如下
本文章来给各位朋友介绍Android打包apk报错:Errors occurred during the build 解决办法,碰到此问题的同学不防进入参考。
Android应用打包apk时报错:Errors occurred during the build,如图:
解决方法:选中Android应用项目,右键选则“Properties” ,“Builders”中只勾选“Android Package Builder”,如图:
昨天有一朋友问我有没有办法设置Android ImageView点击时的样式呢,后来我们到论坛问了朋友如下说
imageview.setXXX可以设置
setBackgroundResource背景,
布局setLayoutParams
还有setScaleType ,
源图片是无法改变的.不用担心.如果图片旋转,也只有生成另一个Bitmap
解决办法
首先,再res/drawable文件夹下创建一个xml文件,命名为logoutimage.xml,在该文件中实该图片在点击前和点击时的图片,代码如下:
代码如下 |
复制代码 |
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 默认图片 -->
<item android:state_pressed="false"
android:drawable="@drawable/logout2" />
<!-- 点击时图片 -->
<item android:state_pressed="true"
android:drawable="@drawable/logout1" />
</selector>
|
然后在ImageView的src属性中引用该文件,代码如下:
代码如下 |
复制代码 |
<ImageButton
android:src="@drawable/logoutimage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
|
更多情况
代码如下 |
复制代码 |
<!-- 默认图片 -->
<item android:drawable="@drawable/img1" />
<!-- 没有焦点时的图片 -->
<item android:state_window_focused="false"
android:drawable="@drawable/img2" />
<!--获得焦点时的图片 -->
<item android:state_focused="true"
android:drawable="@drawable/img3" />
<!--选中时的图片 -->
<item android:state_selected="true"
android:drawable="@drawable/img4" />
<!-- 触摸模式下单击时的图片 -->
<item android:state_focused="false"
android:state_pressed="true"
android:drawable="@drawable/img5" />
<!-- 非触摸模式下获得焦点并单击时的图片 -->
<item android:state_focused="true"
android:state_pressed="true"
android:drawable= "@drawable/img6" />
|
方法这些了,大家可看看如下效果图
现在使用安卓系统的手机用户大批大批的,下面我来以htc手机为例来介绍android使用技巧及一些常见问题总结,大家可参考。
解决信号门
*#*#4636#*#*更改网络模式为GSM;
设置->无线和网络->移动网络设置->网络模式->仅 GSM
自定义铃声、提示音
默认情况下,只能只用系统自带的一些铃声和提示音,怎么使用自己下载的个性化铃声了,很简单:
一、手动方式
在SD卡里建立 “ringtones”(来电铃声)”alarms”(闹钟铃声) “notifications”(短信通知铃声),把你不同用途的铃声放到不同的文件夹下手机就可以自动找到。
用这个方法设置短信铃声的话需要,进入“短信”——MENU——通知设置,选择通知,选取自己的个性铃声,或在铃声设置里直接点取设。
二、貌似91手机助手有界面化的设置办法。
重启后桌面图标变小机器人解决办法
我的htc手机重启后,装在SD卡里的程序桌面图标快捷方式就会变成小机器人,经过查找原因是:
SD卡作为磁盘在linux里挂在(mount)顺序在系统启动之后,所以当时是无法读取到图标的。
解决办法有两种种:
方法1、更换皮肤
更换一下“皮肤”,届时系统会自动重新读取图标的。
方法2、卸载/重新安装存储卡
别怕,不是要拆机器,通过软操作实现:设置->手机和存储卡->卸载存储卡->安装存储卡。
这是后来才发现的,也是最好的方法。
事实证明,这个方法是不行的
android phone Drivers-我的htc手机驱动程序
安装官方的 rsync 包要148Mb,并且安装过程有些功能无法安装,所以我把它从包里提取出来,以备不时之需。
实现方法为:正常安装后用驱动精灵备份驱动的方法,所以比较的安全和完整。
能用来做什么?
usb文件传输、Internet共享(手机、pc双向均可)
一个记录android+java环境变量配置备忘教程,各位同学可参考,希望对文章对你有所帮助。
android:
变量 android
值 C:/Program Files/Android/android-sdk/platform-tools;C:/Program Files/Android/android-sdk/tools;C:/Program Files/Android/android-sdk;
%SystemRoot%/System32/Wbem;%android%;
变量:JAVA_HOME
值 C:/Program Files/Java/jdk1.6.0_10
变量:CLASSPATH
值 .;%JAVA_HOME%/lib/dt.jar;%JAVA_HOME%/lib/tools.jar;
%SystemRoot%/System32/Wbem;%android%;%JAVA_HOME%/bin;%JAVA_HOME%/jre/bin;
测试ANDROID成不成功
运行CMD
adb
标签:[!--infotagslink--]