万书网 > 文学作品 > Android从入门到精通 > 第176页

第176页





txtInHandler=(EditText)  findViewById(R.id.txtInHandler);  //获取“付款方”文本框



txtInMark=(EditText)  findViewById(R.id.txtInMark);  //获取“备注”文本框



spInType=(Spinner)  findViewById(R.id.spInType);  //获取“类别”下拉列表



btnInSaveButton=(Button)  findViewById(R.id.btnInSave);  //获取“保存”按钮



btnInCancelButton=(Button)  findViewById(R.id.btnInCancel);  //获取“取消”按钮

单击“时间”文本框,为该文本框设置监听事件,在监听事件中使用showDialog()方法弹出时间选择对话框,并且在Activity创建时,默认显示当前的系统时间,代码如下:

txtInTime.setOnClickListener(new  OnClickListener()  {  //为“时间”文本框设置单击监听事件



@Override



public  void  onClick(View  arg0)  {



//TODO  Auto-generated  method  stub



showDialog(DATE_DIALOG_ID);  //显示日期选择对话框



}



});



final  Calendar  c  =  Calendar.getInstance();  //获取当前系统日期



mYear  =  c.get(Calendar.YEAR);  //获取年份



mMonth  =  c.get(Calendar.MONTH);  //获取月份



mDay  =  c.get(Calendar.DAY_OF_MONTH);  //获取天数



updateDisplay();  //显示当前系统时间

上面的代码中用到了updateDisplay()方法,该方法用来显示设置的时间,其代码如下:

private  void  updateDisplay()



{



txtInTime.setText(new        StringBuilder().append(mYear).append("-").append(mMonth  +  1).append("-").append(mDay));  //显示设置的时间



}

在为“时间”文本框设置监听事件时,弹出了时间选择对话框,该对话框的弹出需要覆写onCreateDialog()方法,该方法用来根据指定的标识弹出时间选择对话框,代码如下:

@Override



protected  Dialog  onCreateDialog(int  id)  //重写onCreateDialog()方法



{



switch  (id)



{



case  DATE_DIALOG_ID:  //弹出时间选择对话框



return  new  DatePickerDialog(this,  mDateSetListener,  mYear,  mMonth,  mDay);



}



return  null;



}

上面的代码中用到了mDateSetListener对象,该对象是OnDateSetListener类的一个对象,用来显示用户设置的时间,代码如下:

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();  //显示设置的日期



}



};

15.10.3 添加收入信息

填写完信息后,单击“保存”按钮,为该按钮设置监听事件。在监听事件中,使用InaccountDAO对象的add()方法将用户的输入保存到收入信息表中,代码如下:

btnInSaveButton.setOnClickListener(new  OnClickListener()  {  //为“保存”按钮设置监听事件



@Override



public  void  onClick(View  arg0)  {



//TODO  Auto-generated  method  stub



String  strInMoney=  txtInMoney.getText().toString();  //获取“金额”文本框的值



if(!strInMoney.isEmpty()){  //判断金额不为空



//创建InaccountDAO对象



InaccountDAO  inaccountDAO=new  InaccountDAO(AddInaccount.this);



Tb_inaccount  tb_inaccount=new  Tb_inaccount(inaccountDAO.getMaxId()+1,  Double.parseDouble  (strInMoney),  txtInTime.getText().toString(),  spInType.getSelectedItem().toString(),  txtInHandler.getText().toString(),  txtInMark.getText().toString());  //创建Tb_inaccount对象



inaccountDAO.add(tb_inaccount);  //添加收入信息



//弹出信息提示



Toast.makeText(AddInaccount.this,  "〖新增收入〗数据添加成功!",Toast.LENGTH_SHORT).show();



}



else  {



Toast.makeText(AddInaccount.this,  "请输入收入金额!",Toast.LENGTH_SHORT).show();



}



}



});

15.10.4 重置新增收入窗口中的各个控件

单击“取消”按钮,重置新增收入窗口中的各个控件,代码如下:

btnInCancelButton.setOnClickListener(new  OnClickListener()  {  //为“取消”按钮设置监听事件



@Override



public  void  onClick(View  arg0)  {



//TODO  Auto-generated  method  stub