乐读文学

Android从入门到精通

乐读文学 > 科普学习 > Android从入门到精通

第31页

书籍名:《Android从入门到精通》    作者:明日科技




                 android.R.layout.simple_list_item_single_choice,ctype);



/**********************************************************************************/



setListAdapter(adapter)  ;  //设置该窗口中显示的列表



}



}

(2)为了在单击ListView的各列表项时获取选择项的值,需要重写父类中的onListItemClick()方法,具体代码如下:

@Override



protected  void  onListItemClick(ListView  l,  View  v,  int  position,  long  id)  {



super.onListItemClick(l,  v,  position,  id);



String  result  =  l.getItemAtPosition(position).toString();  //获取选择项的值



Toast.makeText(MainActivity.this,  result,  Toast.LENGTH_SHORT).show();



}



}

运行本实例,将显示如图3.27所示的运行结果。



图3.27 通过继承ListActivity来实现列表视图

3.3.7 日期、时间拾取器

为了让用户能够选择日期和时间,Android提供了日期、时间拾取器,分别是DatePicker组件和TimePicker组件。这两个组件使用比较简单,可以在Eclipse的可视化界面设计器中,选择对应的组件并拖曳到布局文件中。为了可以在程序中获取用户选择的日期、时间,还需要为DatePicker和TimePicker组件添加事件监听器。其中,DatePicker组件对应的事件监听器是OnDateChangedListener,而TimePicker组件对应的事件监听器是OnTimeChangedListener。

下面通过一个具体的实例来说明日期、时间选择器的具体应用。

例3.21   在Eclipse中创建Android项目,名称为3.21,在屏幕中添加日期、时间拾取器,并实现在改变日期或时间时,通过消息提示框显示改变后的日期或时间。(实例位置:光盘\TM\sl\3\3.21)

(1)在新建项目的布局文件main.xml中,添加日期、时间拾取器,关键代码如下:




android:layout_width="wrap_content"



android:layout_height="wrap_content"/>






android:layout_width="wrap_content"



android:layout_height="wrap_content"/>

(2)在主活动MainActivity的onCreate()方法中,获取日期拾取组件和时间拾取组件,并将时间拾取组件设置为24小时制式显示,具体代码如下:

DatePicker  datepicker=(DatePicker)findViewById(R.id.datePicker1);  //获取日期拾取组件



TimePicker  timepicker=(TimePicker)findViewById(R.id.timePicker1);  //获取时间拾取组件



timepicker.setIs24HourView(true);

(3)创建一个日历对象,并获取当前年、月、日、小时和分钟数,具体代码如下:

Calendar  calendar=Calendar.getInstance();



year=calendar.get(Calendar.YEAR);  //获取当前年份



month=calendar.get(Calendar.MONTH);  //获取当前月份



day=calendar.get(Calendar.DAY_OF_MONTH);  //获取当前日



hour=calendar.get(Calendar.HOUR_OF_DAY);  //获取当前小时数



minute=calendar.get(Calendar.MINUTE);  //获取当前分钟数

(4)初始化日期拾取组件,并在初始化时为其设置OnDateChangedListener事件监听器,以及为时间拾取组件添加事件监听器,具体代码如下:

//初始化日期拾取器,并在初始化时指定监听器



datepicker.init(year,  month,  day,  new  OnDateChangedListener(){



@Override



public  void  onDateChanged(DatePicker  arg0,int  year,int  month,int  day){



MainActivity.this.year=year;  //改变year属性的值



MainActivity.this.month=month;  //改变month属性的值



MainActivity.this.day=day;  //改变day属性的值



show(year,month,day,hour,minute);  //通过消息框显示日期和时间



}



});



//为时间拾取器设置监听器



timepicker.setOnTimeChangedListener(new  OnTimeChangedListener()  {



@Override



public  void  onTimeChanged(TimePicker  view,  int  hourOfDay,  int  minute)  {



MainActivity.this.hour=  hourOfDay;  //改变hour属性的值



MainActivity.this.minute=minute;  //改变minute属性的值



show(year,month,day,  hourOfDay,minute);  //通过消息框显示选择的日期和时间



}



});

(5)编写show()方法,用于通过消息框显示选择的日期和时间,具体代码如下:

private  void  show(int  year,int  month,int  day,int  hour,int  minute){



String  str=year+"年"+(month+1)+"月"+day+"日  "+hour+":"+minute;  //获取拾取器设置的日期和时间



Toast.makeText(this,  str,  Toast.LENGTH_SHORT).show();  //显示消息提示框