当前位置: 代码迷 >> Android >> 两个时间控件的时间没有触发
  详细解决方案

两个时间控件的时间没有触发

热度:45   发布时间:2016-04-28 07:56:06.0
两个时间控件的时间没有触发 求助
public class datePick extends Activity{
private DatePicker dp1;
private TimePicker tp1;
private EditText et1;
private EditText et2;
private Handler handler=new Handler(){
@Override
public void handleMessage(Message msg)
{
switch (msg.what) {
case 1:
 int year=Integer.parseInt(msg.getData().get("year").toString());
 int month=Integer.parseInt(msg.getData().get("year").toString());
 int day=Integer.parseInt(msg.getData().get("year").toString());
 et1.setText("您选择的日期是:"+year+"年"+(month+1)+"月"+day+"日。");
break;
case 2:
 int hourOfDay=Integer.parseInt(msg.getData().get("hourOfDay").toString());
 int minute=Integer.parseInt(msg.getData().get("minute").toString());
 et2.setText("您选择的时间为:"+hourOfDay+"小时"+minute+"分");
break;
default:
break;
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init();
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
public void init()
{
dp1=(DatePicker)findViewById(R.id.dp1);
tp1=(TimePicker)findViewById(R.id.tp1);
et1=(EditText)findViewById(R.id.et1);
et2=(EditText)findViewById(R.id.et2);
}
public void initDate()
{
Calendar calendar=Calendar.getInstance();
int year=calendar.get(Calendar.YEAR);
int month=calendar.get(Calendar.MONTH);
int day=calendar.get(Calendar.DAY_OF_MONTH);
dp1.init(year, month, day, new OnDateChangedListener() {
@Override
public void onDateChanged(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
Message msg=new Message();
msg.what=1;
Bundle bundle=new Bundle();
bundle.putString("year", ""+year);
bundle.putString("month", ""+monthOfYear);
bundle.putString("day", ""+dayOfMonth);
msg.setData(bundle);
handler.sendMessage(msg);
}
});
tp1.setOnTimeChangedListener(new OnTimeChangedListener() {
@Override
public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
Message msg=new Message();
msg.what=2;
Bundle bundle=new Bundle();
bundle.putString("hourOfDay", ""+hourOfDay);
bundle.putString("minute", ""+minute);
msg.setData(bundle);
handler.sendMessage(msg);
}
});
}
}
当我选择日期 两个事件根本没触发 求助

------解决方案--------------------
public class datePick extends Activity {
    private DatePicker dp1;
    private TimePicker tp1;
    private EditText et1;
    private EditText et2;
    private Handler handler = new Handler() {
        @Override
        public void handleMessage(Message msg)
        {
            switch (msg.what) {
                case 1:
                    int year = Integer.parseInt(msg.getData().get("year").toString());
                    int month = Integer.parseInt(msg.getData().get("month").toString());//这里要get("month"),还用get("year")就错了
                    int day = Integer.parseInt(msg.getData().get("day").toString());//这里要get("day"),还用get("year")就错了
                    et1.setText("您选择的日期是:" + year + "年" + (month + 1) + "月" + day + "日。");
                    break;
                case 2:
                    int hourOfDay = Integer.parseInt(msg.getData().get("hourOfDay").toString());
  相关解决方案