آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

خطای ساعت سفارشی

Pouya Asgharnejad Tehran  11 سال پیش  11 سال پیش
+1 0

سلام؛

من از کد زیر برای ساخت ساعت  کاستوم دیجیتالی استفاده میکنم.

اما وقتی میخوام اونو توی برنامم بندازم،دیزاینر اکلیپس ایراد میگیره؛در صورتی که کاملا درست کار میکنه.

لطفا راهنمایی کنید...

 package com.example;import android.content.Context;import android.content.res.Resources;import android.database.ContentObserver;import android.os.Handler;import android.os.SystemClock;import android.provider.Settings;import android.text.format.DateFormat;import android.util.AttributeSet;import android.widget.TextView;import java.util.Calendar;/**
 * You have to make a clone of the file DigitalClock.java to use in your application, modify in the following manner:-
 *      private final static String m12 = "h:mm aa";
 *      private final static String m24 = "k:mm";
 */publicclassCustomDigitalClockextendsTextView{Calendar mCalendar;privatefinalstaticString m12 ="h:mm aa";privatefinalstaticString m24 ="k:mm";privateFormatChangeObserver mFormatChangeObserver;privateRunnable mTicker;privateHandler mHandler;privateboolean mTickerStopped =false;String mFormat;publicCustomDigitalClock(Context context){super(context);
        initClock(context);}publicCustomDigitalClock(Context context,AttributeSet attrs){super(context, attrs);
        initClock(context);}privatevoid initClock(Context context){Resources r = context.getResources();if(mCalendar ==null){
            mCalendar =Calendar.getInstance();}

        mFormatChangeObserver =newFormatChangeObserver();
        getContext().getContentResolver().registerContentObserver(Settings.System.CONTENT_URI,true, mFormatChangeObserver);

        setFormat();}@Overrideprotectedvoid onAttachedToWindow(){
        mTickerStopped =false;super.onAttachedToWindow();
        mHandler =newHandler();/**
         * requests a tick on the next hard-second boundary
         */
        mTicker =newRunnable(){publicvoid run(){if(mTickerStopped)return;
                    mCalendar.setTimeInMillis(System.currentTimeMillis());
                    setText(DateFormat.format(mFormat, mCalendar));
                    invalidate();long now =SystemClock.uptimeMillis();long next = now +(1000- now %1000);
                    mHandler.postAtTime(mTicker, next);}};
        mTicker.run();}@Overrideprotectedvoid onDetachedFromWindow(){super.onDetachedFromWindow();
        mTickerStopped =true;}/**
     * Pulls 12/24 mode from system settings
     */privateboolean get24HourMode(){return android.text.format.DateFormat.is24HourFormat(getContext());}privatevoid setFormat(){if(get24HourMode()){
            mFormat = m24;}else{
            mFormat = m12;}}privateclassFormatChangeObserverextendsContentObserver{publicFormatChangeObserver(){super(newHandler());}@Overridepublicvoid onChange(boolean selfChange){
            setFormat();}}}
+1 0
لینک کد بالا//stackoverflow.com/questions/7610549/android-digitalclock-remove-seconds لطفا مطالعه کنید و کمکم کنید. (11 سال پیش)
0 0
اسم پکیجتون رو درست کنید و نام پکیج خودتون ور براش بنویسید حل میشه (11 سال پیش)
0 0
در ضمن کدی که نوشتید رو مرتب کنید این نوع نوشتن خیلی بهم ریخته و نا منظم هست . (11 سال پیش)
+1 0
با وجود این تغییرات هم خطا داره. توی ویژوال دیزاینر اکلیپس وقتی Drag & Drop میکنم مینویسه null pointer exception (11 سال پیش)
0 0
دوباره هم میگم کدتون رو مرتب کنید و خطای مربطه رو بنویسید تا بررسی کنیم . (11 سال پیش)
0 0
من چند ماه قبل این کد رو البته با تغییراتی داخل برنامم استفاده کردم و مشکلی نداشت الان هم کدی که قرار دادید رو تست کردم و به درستی نشون داده میشه. (11 سال پیش)
 برای این سوال 3 پاسخ وجود دارد.
پاسخ به سوال 
Pouya Asgharnejad Tehran  11 سال پیش
0 0

کد توی لینکی که گذاشتم هست

اینم از عکسش

0 0
لینکتون ایراد داره تصحیح کنید لطفا (11 سال پیش)
0 0
ایراد نداره. همون پاسخیه که تیک خورده (11 سال پیش)
0 0
ایراد نداره. همون پاسخیه که تیک خورده البته منظورم لینکیه که توی نظرات بالاست (11 سال پیش)
0 0
خطایی که اکلیپس بهتون گرفته چی هست بنویسید لطفا . (11 سال پیش)
پاسخ به سوال 
Pouya Asgharnejad Tehran  11 سال پیش
0 0

java.lang.NullPointerException
at android.text.SpannableStringBuilder.<init>(SpannableStringBuilder.java:48)
at android.text.format.DateFormat.format(DateFormat.java:432)
at ir.DroidPlus.Weather.DigitalClock$1.run(DigitalClock.java:75)
at ir.DroidPlus.Weather.DigitalClock.onAttachedToWindow(DigitalClock.java:80)
at android.view.View.dispatchAttachedToWindow(View.java:13406)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2714)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2714)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2714)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2714)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2714)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2714)
at android.view.AttachInfo_Accessor.setAttachInfo(AttachInfo_Accessor.java:42)
at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:409)
at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:329)
at com.android.ide.common.rendering.LayoutLibrary.createSession(LayoutLibrary.java:332)
at com.android.ide.eclipse.adt.internal.editors.layout.gle2.RenderService.createRenderSession(RenderService.java:517)
at com.android.ide.eclipse.adt.internal.editors.layout.gle2.GraphicalEditorPart.renderWithBridge(GraphicalEditorPart.java:1584)
at com.android.ide.eclipse.adt.internal.editors.layout.gle2.GraphicalEditorPart.recomputeLayout(GraphicalEditorPart.java:1309)
at com.android.ide.eclipse.adt.internal.editors.layout.gle2.GraphicalEditorPart.onXmlModelChanged(GraphicalEditorPart.java:1267)
at com.android.ide.eclipse.adt.internal.editors.layout.LayoutEditorDelegate.delegateXmlModelChanged(LayoutEditorDelegate.java:402)
at com.android.ide.eclipse.adt.internal.editors.common.CommonXmlEditor.xmlModelChanged(CommonXmlEditor.java:329)
at com.android.ide.eclipse.adt.internal.editors.AndroidXmlEditor$XmlModelStateListener.modelChanged(AndroidXmlEditor.java:1653)
at com.android.ide.eclipse.adt.internal.editors.AndroidXmlEditor.wrapEditXmlModel(AndroidXmlEditor.java:1114)
at com.android.ide.eclipse.adt.internal.editors.AndroidXmlEditor.wrapUndoEditXmlModel(AndroidXmlEditor.java:1190)
at com.android.ide.eclipse.adt.internal.editors.layout.gle2.MoveGesture.drop(MoveGesture.java:396)
at com.android.ide.eclipse.adt.internal.editors.layout.gle2.GestureManager$CanvasDropListener.drop(GestureManager.java:679)
at org.eclipse.swt.dnd.DNDListener.handleEvent(DNDListener.java:91)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4353)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1061)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1085)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1070)
at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:782)
at org.eclipse.swt.dnd.DropTarget.Drop(DropTarget.java:456)
at org.eclipse.swt.dnd.DropTarget.Drop_64(DropTarget.java:392)
at org.eclipse.swt.dnd.DropTarget$3.method6(DropTarget.java:260)
at org.eclipse.swt.internal.ole.win32.COMObject.callback6(COMObject.java:119)
at org.eclipse.swt.internal.ole.win32.COM.DoDragDrop(Native Method)
at org.eclipse.swt.dnd.DragSource.drag(DragSource.java:363)
at org.eclipse.swt.dnd.DragSource.access$0(DragSource.java:289)
at org.eclipse.swt.dnd.DragSource$1.handleEvent(DragSource.java:172)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4353)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1061)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4172)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3761)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1151)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1032)
at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:148)
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:636)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:579)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:135)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603)
at org.eclipse.equinox.launcher.Main.run(Main.java:1465)
at org.eclipse.equinox.launcher.Main.main(Main.java:1438)

0 0
اینا توی ErrorLog نوشته شده اند (11 سال پیش)
پاسخ به سوال 
کاشی زاده  11 سال پیش
+2 0

من کدی که لینک داده بودین رو تست کردم و مشکلی هم نداشت و کار میکرد حالا اینکه مال شما چرا ارور میده میتونه چندتا عامل داشته باشه :

سیستم اکلیپس نتونسته R فایل رو بروز کنه که بهتره یک بار پروژه رو کلین کنید شاید مشکل حل بشه .

یا اینکه در نوشتن کد جایی اشتباهی چیز رو نوشتین  و دقت نکردین .

حالت آخر هم این هست که در Import کردن برخی  لایبری ها به اشتباه لایبری غیر مربوط رو import کرده باشید .

این هم اسکرین شات برنامه :

Import های مربوطه رو هم براتون نوشتم ، ممکن توی اینجا مشکل وجود داشته باشه :

 import java.util.Calendar;
import android.content.Context;
import android.database.ContentObserver;
import android.os.Handler;
import android.os.SystemClock;
import android.provider.Settings;
import android.text.format.DateFormat;
import android.util.AttributeSet;
import android.widget.TextView;

 

 

0 0
شما وقتی لایوتتون رو داخل اکلیپس باز میکنید ارور نمیده؟ من هم میدونم که کد درست کار میکنه؛اما داخل ویژوال دیزاینر اکلیپس خطا میده. وقتی این ویجت رو به لایوت میندازم دیزاینر اکلیپس خطا میده و نمیزاره چیز دیگه ای به لایوت بندازم. (11 سال پیش)
+1 0
خوب این مشکل بعضی وقتا تو کاستوم ویو ها پیش میاد و مربوط به کستوم ویویی هست توش کد زدن . (11 سال پیش)
0 0
الان فقط مشکل من همینه؛چون دیگه نمیتونم روی لایوت برنامم کار کنم. (11 سال پیش)
0 0
اگه میشه راهنمایی کنید که این مشکل رو رفع کنم. (11 سال پیش)

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .