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