AutoCompleteTextView与DatePickerDialog的使用
一.AutoCompleteTextView自动提示文本框
1. 在布局文件中添加一个AutoCompleteTextView控件,设置好ID和各种属性。
2. 添加一个布局文件,例如autotext_list.xml用于应用于AutoCompleteTextView的下拉列表的样式。
3. Activity与Xlm布局文件代码如下:
<!-- AutoComputleteTextView控件 -->
<AutoCompleteTextViewandroid:id="@+id/autoText"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
<!-- 下拉列表样式代码 -->
<?xml version="1.0"encoding="utf-8"?>
<TextViewxmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="10dp"
android:textSize="16sp"
android:textColor="#000">
</TextView>
//定义一个String[]数组,用于存放自动提示框查找的内容
static final String[] StrList = newString[]{
"abc","acd","ssdde","sdsa"
};
@Override
public void onCreate(BundlesavedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
AutoCompleteTextViewautoCompleteTextView = (AutoCompleteTextView)findViewById(paj.DatePicker.R.id.autoText);
List<String> autoTextDownList =new ArrayList<String>();
autoTextDownList.add("测试一");
autoTextDownList.add("测试二");
autoTextDownList.add("测测试三");
//创建一个ArrayAdapter对象
//第一个参数为 当前activity对象
//第二个参数为 下拉列表的样式布局文件
//第三个参数为 可以使List对象 也可以使String数组对象。
//使用String[]数组来填充ArrayAdapter
//ArrayAdapter<String>arrayAdapter = new ArrayAdapter<String>(this,R.layout.auto_list,StrList);
//使用List来填充ArrayAdapter
ArrayAdapter<String> arrayAdapter= new ArrayAdapter<String>(this,R.layout.auto_list , autoTextDownList);
autoCompleteTextView.setAdapter(arrayAdapter);
}
二.DatePickerDialog与TimePickerDialog的使用
1. 在布局文件中添加两个按钮。用于启动设置时间和设置日期的Dialog按钮
2. 在Acitivyt中为两个按钮分别设置监听事件。分别调用showDialog
3. Activity代码如下:
package paj.DatePicker;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
importandroid.app.DatePickerDialog;
import android.app.Dialog;
importandroid.app.TimePickerDialog;
import android.os.Bundle;
import android.view.View;
importandroid.view.View.OnClickListener;
importandroid.widget.ArrayAdapter;
importandroid.widget.AutoCompleteTextView;
import android.widget.Button;
importandroid.widget.DatePicker;
importandroid.widget.TimePicker;
public class DatePickerActivityextends Activity {
/** Called when the activity is firstcreated. */
privatestatic final int DATE_PICKER_DIAOG_ID= 1;
privatestatic final int TIME_PICKER_DIAOG_ID = 2;
@Override
public void onCreate(BundlesavedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//设置弹出日期设置窗口的监听事件
Button showDate =(Button)findViewById(R.id.ShowDate);
showDate.setOnClickListener(newOnClickListener() {
publicvoid onClick(View v) {
//TODO Auto-generated method stub
showDialog(TIME_PICKER_DIAOG_ID);
}
});
//设置弹出时间设置窗口的监听事件
Button showTime = (Button)findViewById(R.id.ShowTime);
showTime.setOnClickListener(newOnClickListener() {
publicvoid onClick(View v) {
//TODO Auto-generated method stub
showDialog(TIME_PICKER_DIAOG_ID);
}
});
}
//为DatePickerDialog设置按钮的监听器
DatePickerDialog.OnDateSetListeneronDateSetListener = new DatePickerDialog.OnDateSetListener() {
publicvoid onDateSet(DatePicker view, int year, int monthOfYear,
intdayOfMonth) {
//TODO Auto-generated method stub
System.out.println("日期--->" + year+ "-" + monthOfYear + "-" + dayOfMonth);
}
};
//为TimePickerDialog设置按钮的监听器
TimePickerDialog.OnTimeSetListeneronTimeSetListener = new TimePickerDialog.OnTimeSetListener() {
publicvoid onTimeSet(TimePicker view, int hourOfDay, int minute) {
//TODO Auto-generated method stub
System.out.println("时间--->" +hourOfDay + "--" + minute);
}
};
//重写OnCreateDialog函数,根据ID号弹出DatePickerDialog或是TimePickerDialog
@Override
protectedDialog onCreateDialog(int id) {
switch(id) {
caseDATE_PICKER_DIAOG_ID:
//第一个参数是当前Activity的对象
//第二个参数是设置弹出窗口的设置按钮的监听事件
//第三 四 五个参数分别为设置 年 月 日 。【月份是以0月开始】如果设置成0月在Dialog窗口中则显示1
returnnew DatePickerDialog(DatePickerActivity.this, onDateSetListener, 2011, 11, 21);
caseTIME_PICKER_DIAOG_ID:
//第一个参数是当前Activity的对象
//第二个参数为设置窗口的设置按钮监听事件
//第三个参数是设置小时
//第四个参数是设置分钟
//第五个参数是设置是否启动24小时制
returnnew TimePickerDialog(this, onTimeSetListener, 12, 12 , false);
}
returnnull;
}
}