问题描述
- 在AlertDialog.Builder中用到findViewById()出现NullPointer异常
-
先看代码:@Override public void onClick(View v) { final AlertDialog.Builder adb = new AlertDialog.Builder(getApplicationContext()); adb.setView(LayoutInflater.from(getApplicationContext()).inflate(R.layout.custom, null)); adb.setPositiveButton("Add",new android.content.DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int arg1) { DatePicker datePicker = (DatePicker)findViewById(R.id.datePicker); java.util.Date date = null; Calendar cal = GregorianCalendar.getInstance(); cal.set(datePicker.getYear(),datePicker.getMonth(), datePicker.getDayOfMonth()); date = cal.getTime(); } }); adb.show(); }
在这行里出现异常:
cal.set(datePicker.getYear(),datePicker.getMonth(), datePicker.getDayOfMonth());
我尝试了用
adb.findViewById();
但是有错误:The method findViewById(int) is undefined for the type AlertDialog.Builder
帮忙看一下,谢谢
解决方案
把DatePicker datePicker = (DatePicker)findViewById(R.id.datePicker);
这一行改成:
DatePicker datePicker = (DatePicker)adb.findViewById(R.id.datePicker);
试下这个:
final AlertDialog.Builder adb = new AlertDialog.Builder(this);
final View view = LayoutInflater.from(getApplicationContext()).inflate(R.layout.main1, null);
adb.setView(view);
final Dialog dialog;
adb.setPositiveButton("Add",new android.content.DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int arg1) {
DatePicker datePicker = (DatePicker)view.findViewById(R.id.datePicker1);
java.util.Date date = null;
Calendar cal = GregorianCalendar.getInstance();
cal.set(datePicker.getYear(),datePicker.getMonth(), datePicker.getDayOfMonth());
date = cal.getTime();
}
});
dialog = adb.create();
dialog.show();
时间: 2024-10-22 17:24:51