欢迎光临散文网 会员登陆 & 注册

第五章 用户界面基础(AutoCompleteTextView、DatePicker和TimePicker)

2018-11-05 09:43 作者:swiss126  | 我要投稿

参考资料:

《Android应用程序开发》ISBN 9787302283164

参考软件:

Android Studio、Eclipse+ADT、Android SDK、JDK

AutoCompleteTextView

 自动编辑文本框(AutoCompleteTextView)继承自EditText,能够接受用户的输入编辑,但是有这自己的特色功能:输入一定的字符以后会弹出下拉列表提示供用户选择,用户选择之后会自动填充文本框。这项功能正如浏览器的输入提示:

由于自动编辑文本框继承于EditText,它能够支持EditText的全部属性,但是在输入提示方面它有着自己的独特属性:

          android:completionHint            为弹出下拉菜单指定提示标题

          android:completionThreshold     指定输入多少个字符以后会出现提示

          android:dropDownHeight          指定下拉菜单的高度

          android:dropDownHorizontalOffset       指定下拉菜单和文本框的水平偏移

          android:dropDownVerticalOffset           指定下拉带单和文本框的垂直偏移

          android:dropDownWidth                    指定下拉菜单宽度

          android:popupBackground                 为下拉菜单设置背景

输入提示框中会有我们输入信息的补充,因此我们需要给输入提示框配置信息,这是要通过适配器实现。下面我们创建一个带输入提示框的AutoCompleteTextView

实例操作:

1.在可视化界面拖入一个自动完成编辑框,并设置2个字符弹出提示和编辑框出布局正中间

 <AutoCompleteTextView

        android:id="@+id/autoCompleteTextView1"

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:layout_gravity="center"

        android:completionThreshold="2"

        android:hint="请输入"

        android:ems="10">

 

        <requestFocus/>

    </AutoCompleteTextView>

2.创建适配器。适配器可以通过java数组或资源文件创建,这里我们采用资源文件创建适配器

资源文件:

<?xml version="1.0"encoding="UTF-8"?>

<resources >

    <string-array name="data">

        <item >nanjing-xuanwu</item>

        <item >nanjing-jiangning</item>

        <item >nanjing-qixia</item>

        <item >nanjing-jianye</item>

    </string-array>

</resources>

java代码:

 AutoCompleteTextView atc =(AutoCompleteTextView)findViewById(R.id.autoCompleteTextView1);//获取组件

       

        ArrayAdapter<CharSequence> aa =ArrayAdapter.createFromResource(this, R.array.data,R.layout.support_simple_spinner_dropdown_item);//创建

       

3.绑定适配器

      atc.setAdapter(aa);

运行结果

总结:对于AutoCompletionEditText使用,主要是完善它的提示功能。提示词使用适配器加入,对于适配器创建,主要有通过资源文件创建和java字符串创建两种。

 DatePicker日期拾取器和TimePicker时间拾取器

 为了能够让用户选择时间日期,安卓提供了DatePicker日期拾取器和TimePicker时间拾取器。这两个组建的使用十分简单,在eclipse的可视化界面上直接拖拽到布局中即可。当用户在事件日期选择器上进行选择之后,需要加将用户的选择读取出来,这需要给组件添加相应的监听器。

一      日期拾取器

     1.在eclipse可视化界面上拖拽组件到布局中

    <DatePicker

        android:id="@+id/datePicker1"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"/>

     2.布局中获取日期组件

DatePicker dp = (DatePicker)findViewById(R.id.datePicker1);

     3.创建日历对象,获取当前的日历时间

        Calendar c = Calendar.getInstance();

        int year = c.get(Calendar.YEAR);

        int month = c.get(Calendar.MONTH);

        int date = c.get(Calendar.DATE);

     4.初始化日期选择器,并且绑定监听器

        dp.init(year, month, date, new OnDateChangedListener() {

            

            @Override

            publicvoid onDateChanged(DatePicker arg0, int arg1, int arg2, int arg3) {

                

                Toast.makeText(MainActivity.this,

                        MainActivity.this.year+ " " + MainActivity.this.month + " " + MainActivity.this.date,

                        Toast.LENGTH_LONG).show();

                

            }

        });

运行效果如下,事件监听方面:当点击日期后会有提示框显示

 

二      时间拾取器

1.在eclipse可视化界面上拖拽组件到布局中

    <TimePicker

        android:id="@+id/timePicker1"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"/>

2.布局中获取日期组件

TimePicker tp = (TimePicker)findViewById(R.id.timePicker1);

 

3.创建日历对象,获取当前的日历时间

        Calendar c = Calendar.getInstance();

        hour = c.get(Calendar.HOUR);

        munite = c.get(Calendar.MINUTE);

        second = c.get(Calendar.SECOND);

4.绑定监听器

        tp.setOnTimeChangedListener(new OnTimeChangedListener() {

            

            @Override

            publicvoid onTimeChanged(TimePicker arg0, int arg1, int arg2) {

                

                

                Toast.makeText(MainActivity.this,

                        MainActivity.this.hour+ " " + MainActivity.this.munite + " " + MainActivity.this.second,

                        Toast.LENGTH_LONG).show();

            }

        });

运行效果如下,点击时间选择之后会有提示框显示

 


第五章 用户界面基础(AutoCompleteTextView、DatePicker和TimePicker)的评论 (共 条)

分享到微博请遵守国家法律