自定义dialog:
1.实例化有一定样式的Dialog
2.获得dialog的window
3.给window设置view setContentView();
4.通过window对view里的控件进行控制
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
String str=sdf.format(new Date());
int year=Integer.parseInt(str.substring(0, 4));
int month=Integer.parseInt(str.substring(5,7))-1;
int day=Integer.parseInt(str.substring(8,10));
final Dialog dialog = newDialog(TaskQueryActivity.this, R.style.MyDialog);
dialog.show();
//注意避免点击事件没效果
Window window=dialog.getWindow();
// View dialogView = LayoutInflater.from(WebReaderActivity.this)
// .inflate(R.layout.bookmark_dialog, null);
// 设置ContentView
window.setContentView(R.layout.date_dialog);
final DatePicker datePicker1=(DatePicker)window.findViewById(R.id.datePicker1);
设置时间控件初始时间
datePicker1.init(year,month,day, null);//null是new OnDateChangedListener()
Button insertBookMarkBt = (Button) window
.findViewById(R.id.commitbt);
//OnclickListener一定要指定包(特别注意)
insertBookMarkBt.setOnClickListener(new View.OnClickListener() {
publicvoid onClick(View v) {
dialog.dismiss();
//获得时间控件的设置时间date=datePicker1.getYear()+"/"+(datePicker1.getMonth()+1)+"/"+datePicker1.getDayOfMonth();
if(index==1){
handler.sendEmptyMessage(0);//利用handler更新主线程UI
}else{
handler.sendEmptyMessage(1);
}
}
});
<style name="MyDialog" parent="@android:Theme.Dialog">
<item name="android:windowFrame">@null</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsFloating">true</item>
<item name="android:windowContentOverlay">@null</item>
</style>