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);
}
});
}
}
当我选择日期 两个事件根本没触发 求助
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);
}
});
}
}
当我选择日期 两个事件根本没触发 求助
解决方案 »
- 我想做这么一个应用,大家帮分析一下有多少难点?
- intent.setType(video/*)4.0以上为什么不行呢?
- android:debuggable默认值是true还是false?
- 关于android自定义控件动态添加的初始化问题
- HttpURLConnection获取wml页面源码部分乱码
- layout_width
- 求问如何把心电信号导入到模拟的安卓示波器应用中呢
- 百度地图如何实现手动定位(是指手指点哪里就获取哪里位置信息)
- 创建第一个HelloWorld工程就出现以下错误,请高手解惑,
- android录制视频
- 绑定ListView的时候弹出这样的错误,有时正常有时会出现这样的错误
- 想通过反射动态生成一个列表,结果失败了,求高手
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());
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();
} 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);
initDate();//这句你漏了,两个Listener都没注册上,所以你选择日期、时间都是没作用的。
} 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);
}
});
}
}
代码帮你改了,你看一下注释。