
我想在Android documentation中找到简单的DatePickerDialog工作代码
import androID.app.Activity;import androID.app.DatePickerDialog;import androID.app.Dialog;import androID.os.Bundle;import androID.vIEw.VIEw;import androID.Widget.button;import androID.Widget.DatePicker;import androID.Widget.TextVIEw;import java.util.Calendar;public class DatePickerDialogExample extends Activity { private TextVIEw mDatedisplay; private button mPickDate; private int mYear; private int mMonth; private int mDay; static final int DATE_DIALOG_ID = 0; @OverrIDe public voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVIEw(R.layout.main); mDatedisplay = (TextVIEw) findVIEwByID(R.ID.datedisplay); mPickDate = (button) findVIEwByID(R.ID.pickDate); mPickDate.setonClickListener(new VIEw.OnClickListener() { public voID onClick(VIEw v) { 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(); } private voID updatedisplay() { mDatedisplay.setText( new StringBuilder() .append(mMonth + 1).append("-") .append(mDay).append("-") .append(mYear).append(" ")); } 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(); } }; @OverrIDe protected Dialog onCreateDialog(int ID) { switch (ID) { case DATE_DIALOG_ID: return new DatePickerDialog(this, mDateSetListener, mYear, mMonth, mDay); } return null; }}但是我遇到了奇怪的错误
02-09 15:37:26.491: ERROR/AndroIDRuntime(10174): FATAL EXCEPTION: main androID.vIEw.InflateException: Binary XML file line #48: Error inflating class androID.Widget.ImageVIEw at androID.vIEw.LayoutInflater.createVIEw(LayoutInflater.java:518) at com.androID.internal.policy.impl.PhoneLayoutInflater.onCreateVIEw(PhoneLayoutInflater.java:56) at androID.vIEw.LayoutInflater.createVIEwFromTag(LayoutInflater.java:568) at androID.vIEw.LayoutInflater.rInflate(LayoutInflater.java:623) at androID.vIEw.LayoutInflater.rInflate(LayoutInflater.java:626) at androID.vIEw.LayoutInflater.rInflate(LayoutInflater.java:626) at androID.vIEw.LayoutInflater.inflate(LayoutInflater.java:408) at androID.vIEw.LayoutInflater.inflate(LayoutInflater.java:320) at androID.vIEw.LayoutInflater.inflate(LayoutInflater.java:276) at com.androID.internal.policy.impl.PhoneWindow.setContentVIEw(PhoneWindow.java:207) at com.androID.internal.app.AlertController.installContent(AlertController.java:205) at androID.app.AlertDialog.onCreate(AlertDialog.java:251) at androID.app.Dialog.dispatchOnCreate(Dialog.java:307) at androID.app.Activity.createDialog(Activity.java:886) at androID.app.Activity.showDialog(Activity.java:2557) at androID.app.Activity.showDialog(Activity.java:2524) at uk.co.peterscrorner.DatePickerDialogExample.onClick(DatePickerDialogExample.java:33) at androID.vIEw.VIEw.performClick(VIEw.java:2485) at androID.vIEw.VIEw$PerformClick.run(VIEw.java:9080) at androID.os.Handler.handleCallback(Handler.java:587) at androID.os.Handler.dispatchMessage(Handler.java:92) at androID.os.Looper.loop(Looper.java:123) at androID.app.ActivityThread.main(ActivityThread.java:3683) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:507) at com.androID.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) at com.androID.internal.os.ZygoteInit.main(ZygoteInit.java:597) at dalvik.system.NativeStart.main(Native Method) Caused by: java.lang.reflect.InvocationTargetException at java.lang.reflect.Constructor.constructNative(Native Method) at java.lang.reflect.Constructor.newInstance(Constructor.java:415) at androID.vIEw.LayoutInflater.createVIEw(LayoutInflater.java:505) ... 27 more Caused by: androID.content.res.Resources$NotFoundException: file res/drawable-mdpi/ic_dialog_info.png from drawable resource ID #0x108009b at androID.content.res.Resources.loadDrawable(Resources.java:1714) at androID.content.res.TypedArray.getDrawable(TypedArray.java:601) at androID.Widget.ImageVIEw.(ImageVIEw.java:118) at androID.Widget.ImageVIEw.(ImageVIEw.java:108) ... 30 more Caused by: java.io.fileNotFoundException: res/drawable-mdpi/ic_dialog_info.png at androID.content.res.AssetManager.openNonAssetNative(Native Method) at androID.content.res.AssetManager.openNonAsset(AssetManager.java:406) at androID.content.res.Resources.loadDrawable(Resources.java:1706) ... 33 more解决方法:
在XML中添加TextVIEw和button
<TextVIEw androID:ID="@+ID/searchText" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:text="TextVIEw" /><button androID:ID="@+ID/search" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:text="Search" />在java文件中添加以下代码
public class DatePickerDialogExample extends Activity { TextVIEw txtDate; private int mYear, mMonth, mDay, mHour, mMinute; @OverrIDe protected voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVIEw(R.layout.main); txtDate = (TextVIEw) findVIEwByID(R.ID.searchText); button search = (button) findVIEwByID(R.ID.search); search.setonClickListener(new VIEw.OnClickListener() { @OverrIDe public voID onClick(VIEw v) { // Process to get Current Date final Calendar c = Calendar.getInstance(); mYear = c.get(Calendar.YEAR); mMonth = c.get(Calendar.MONTH); mDay = c.get(Calendar.DAY_OF_MONTH); // Launch Date Picker Dialog DatePickerDialog dpd = new DatePickerDialog(PrayTimeActivity.this, new DatePickerDialog.OnDateSetListener() { @OverrIDe public voID onDateSet(DatePicker vIEw, int year, int monthOfYear, int dayOfMonth) { // display Selected date in textBox txtDate.setText(dayOfMonth + "-" + (monthOfYear + 1) + "-" + year); } }, mYear, mMonth, mDay); dpd.show(); } }); }} 总结 以上是内存溢出为你收集整理的android – DatePickerDialog全部内容,希望文章能够帮你解决android – DatePickerDialog所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)