sz1370 0 ارسال شده در ۱۱ اسفند ۱۳۹۳ گزارش اشتراک گذاری ارسال شده در ۱۱ اسفند ۱۳۹۳ سلام دوستان .من یک پروژه دارم قراره از طریق ساعت گوشی زمان رو در نظر بگیره و تا روز تولدم تا سال آینده بطور makoos بشماره و بگه تا روز تولد من چند روز و چندساعت و دقیقه و ثانیه مونده:مثلا تاریخ و ساعت امروز رو بطور اتوماتیک در نظر بگیره و بگه تا روز 13 برج 3 سال 94 (94/3/12) چقدر مونده!!! کسی می تونه تو نوشتن کدش کمکم کنه؟ [align=center] فرمتش به این صورت باشه 120 روز 6666:666:66 [/align] نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
Farzad Sarseifi 575 ارسال شده در ۱۱ اسفند ۱۳۹۳ گزارش اشتراک گذاری ارسال شده در ۱۱ اسفند ۱۳۹۳ برای اینکار بدین صورت عمل کنید یک کلاس بصورت زیر ایجاد کنید: [shcode=java] public class CountdownChronometer extends Chronometer { private static final String TAG = "CountdownChronometer"; private static final String FAST_FORMAT_DHHMMSS = "%1$02d:%2$02d:%3$02d:%4$02d"; private static final String FAST_FORMAT_HMMSS = "%1$02d:%2$02d:%3$02d"; private static final String FAST_FORMAT_MMSS = "%1$02d:%2$02d"; private static final char TIME_PADDING = '0'; private static final char TIME_SEPARATOR = ':'; private long mBase; private boolean mVisible; private boolean mStarted; private boolean mRunning; private boolean mLogged; private String mFormat; private Formatter mFormatter; private Locale mFormatterLocale; private Object[] mFormatterArgs = new Object[1]; private StringBuilder mFormatBuilder; private OnChronometerTickListener mOnChronometerTickListener; private OnChronometerTickListener mOnCountdownCompleteListener; private StringBuilder mRecycle = new StringBuilder(8); private String mChronoFormat; private static final int TICK_WHAT = 3; public CountdownChronometer(Context context) { this(context, null, 0, 0); } public CountdownChronometer(Context context, long base) { this(context, null, 0, base); } public CountdownChronometer(Context context, AttributeSet attrs) { this(context, attrs, 0, 0); } public CountdownChronometer(Context context, AttributeSet attrs, int defStyle, long base) { super(context, attrs, defStyle); init(base); } private void init(long base) { mBase = base; updateText(System.currentTimeMillis()); } @Override public void setBase(long base) { mBase = base; dispatchChronometerTick(); updateText(System.currentTimeMillis()); } @Override public long getBase() { return mBase; } @Override public void setFormat(String format) { mFormat = format; if (format != null && mFormatBuilder == null) { mFormatBuilder = new StringBuilder(format.length() * 2); } } @Override public String getFormat() { return mFormat; } public void setCustomChronoFormat(String chronoFormat) { this.mChronoFormat = chronoFormat; } public String getCustomChronoFormat() { return mChronoFormat; } @Override public void setOnChronometerTickListener(OnChronometerTickListener listener) { mOnChronometerTickListener = listener; } @Override public OnChronometerTickListener getOnChronometerTickListener() { return mOnChronometerTickListener; } public void setOnCompleteListener(OnChronometerTickListener listener) { mOnCountdownCompleteListener = listener; } public OnChronometerTickListener getOnCompleteListener() { return mOnCountdownCompleteListener; } @Override public void start() { mStarted = true; updateRunning(); } @Override public void stop() { mStarted = false; updateRunning(); } public void setStarted(boolean started) { mStarted = started; updateRunning(); } @Override protected void onDetachedFromWindow() { super.onDetachedFromWindow(); mVisible = false; updateRunning(); } @Override protected void onWindowVisibilityChanged(int visibility) { super.onWindowVisibilityChanged(visibility); mVisible = visibility == VISIBLE; updateRunning(); } private synchronized boolean updateText(long now) { long seconds = mBase - now; seconds /= 1000; boolean stillRunning = true; if (seconds <= 0) { stillRunning = false; seconds = 0; } String text = formatRemainingTime(mRecycle, seconds); if (mFormat != null) { Locale loc = Locale.getDefault(); if (mFormatter == null || !loc.equals(mFormatterLocale)) { mFormatterLocale = loc; mFormatter = new Formatter(mFormatBuilder, loc); } mFormatBuilder.setLength(0); mFormatterArgs[0] = text; try { mFormatter.format(mFormat, mFormatterArgs); text = mFormatBuilder.toString(); } catch (IllegalFormatException ex) { if (!mLogged) { Log.w(TAG, "Illegal format string: " + mFormat); mLogged = true; } } } setText(text); return stillRunning; } private void updateRunning() { boolean running = mVisible && mStarted; if (running != mRunning) { if (running) { if (updateText(System.currentTimeMillis())) { dispatchChronometerTick(); mHandler.sendMessageDelayed( Message.obtain(mHandler, TICK_WHAT), 1000); } else { running = false; mHandler.removeMessages(TICK_WHAT); } } else { mHandler.removeMessages(TICK_WHAT); } mRunning = running; } } private Handler mHandler = new Handler() { public void handleMessage(Message m) { if (mRunning) { if (updateText(System.currentTimeMillis())) { dispatchChronometerTick(); sendMessageDelayed(Message.obtain(this, TICK_WHAT), 1000); } else { dispatchCountdownCompleteEvent(); stop(); } } } }; void dispatchChronometerTick() { if (mOnChronometerTickListener != null) { mOnChronometerTickListener.onChronometerTick(this); } } void dispatchCountdownCompleteEvent() { if (mOnCountdownCompleteListener != null) { mOnCountdownCompleteListener.onChronometerTick(this); } } private String formatRemainingTime(StringBuilder recycle, long elapsedSeconds) { long days = 0; long hours = 0; long minutes = 0; long seconds = 0; if (elapsedSeconds >= 86400) { days = elapsedSeconds / 86400; elapsedSeconds -= days * 86400; } if (elapsedSeconds >= 3600) { hours = elapsedSeconds / 3600; elapsedSeconds -= hours * 3600; } if (elapsedSeconds >= 60) { minutes = elapsedSeconds / 60; elapsedSeconds -= minutes * 60; } seconds = elapsedSeconds; if (mChronoFormat != null) { return formatRemainingTime(recycle, mChronoFormat, days, hours, minutes, seconds); } else if (days > 0) { return formatRemainingTime(recycle, FAST_FORMAT_DHHMMSS, days, hours, minutes, seconds); } else if (hours > 0) { return formatRemainingTime(recycle, FAST_FORMAT_HMMSS, hours, minutes, seconds); } else { return formatRemainingTime(recycle, FAST_FORMAT_MMSS, minutes, seconds); } } private static String formatRemainingTime(StringBuilder recycle, String format, long days, long hours, long minutes, long seconds) { if (FAST_FORMAT_DHHMMSS.equals(format)) { StringBuilder sb = recycle; if (sb == null) { sb = new StringBuilder(8); } else { sb.setLength(0); } sb.append(days); sb.append(TIME_SEPARATOR); if (hours < 10) { sb.append(TIME_PADDING); } else { sb.append(toDigitChar(hours / 10)); } sb.append(toDigitChar(hours % 10)); sb.append(TIME_SEPARATOR); if (minutes < 10) { sb.append(TIME_PADDING); } else { sb.append(toDigitChar(minutes / 10)); } sb.append(toDigitChar(minutes % 10)); sb.append(TIME_SEPARATOR); if (seconds < 10) { sb.append(TIME_PADDING); } else { sb.append(toDigitChar(seconds / 10)); } sb.append(toDigitChar(seconds % 10)); return sb.toString(); } else { return String.format(format, days, hours, minutes, seconds); } } private static String formatRemainingTime(StringBuilder recycle, String format, long hours, long minutes, long seconds) { if (FAST_FORMAT_HMMSS.equals(format)) { StringBuilder sb = recycle; if (sb == null) { sb = new StringBuilder(8); } else { sb.setLength(0); } sb.append(hours); sb.append(TIME_SEPARATOR); if (minutes < 10) { sb.append(TIME_PADDING); } else { sb.append(toDigitChar(minutes / 10)); } sb.append(toDigitChar(minutes % 10)); sb.append(TIME_SEPARATOR); if (seconds < 10) { sb.append(TIME_PADDING); } else { sb.append(toDigitChar(seconds / 10)); } sb.append(toDigitChar(seconds % 10)); return sb.toString(); } else { return String.format(format, hours, minutes, seconds); } } private static String formatRemainingTime(StringBuilder recycle, String format, long minutes, long seconds) { if (FAST_FORMAT_MMSS.equals(format)) { StringBuilder sb = recycle; if (sb == null) { sb = new StringBuilder(8); } else { sb.setLength(0); } if (minutes < 10) { sb.append(TIME_PADDING); } else { sb.append(toDigitChar(minutes / 10)); } sb.append(toDigitChar(minutes % 10)); sb.append(TIME_SEPARATOR); if (seconds < 10) { sb.append(TIME_PADDING); } else { sb.append(toDigitChar(seconds / 10)); } sb.append(toDigitChar(seconds % 10)); return sb.toString(); } else { return String.format(format, minutes, seconds); } } private static char toDigitChar(long digit) { return (char) (digit + '0'); } } [/shcode] سپس در Layout : [shcode=xml] android:id="@+id/chronometer" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:textSize="16sp" /> [/shcode] فراخوانی: [shcode=java] CountdownChronometer countdowner = (CountdownChronometer)findViewById(R.id.chronometer); countdowner.setBase(((System.currentTimeMillis()-Long.parseLong(time))/1000)%60); countdowner.start(); [/shcode] نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
sz1370 0 ارسال شده در ۱۱ اسفند ۱۳۹۳ مالک گزارش اشتراک گذاری ارسال شده در ۱۱ اسفند ۱۳۹۳ سلام تشکر ولی از بیشتر خط ها خطا میده با اینکه فایل های موردنظر رو هم Import می کنم .... چیکار کنم؟ نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
Farzad Sarseifi 575 ارسال شده در ۱۱ اسفند ۱۳۹۳ گزارش اشتراک گذاری ارسال شده در ۱۱ اسفند ۱۳۹۳ Import های مورد نیاز نمونه کد بالا: [shcode=java] import java.util.Formatter; import java.util.IllegalFormatException; import java.util.Locale; import android.content.Context; import android.os.Handler; import android.os.Message; import android.os.SystemClock; import android.util.AttributeSet; import android.util.Log; import android.widget.Chronometer; [/shcode] نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
sz1370 0 ارسال شده در ۱۱ اسفند ۱۳۹۳ مالک گزارش اشتراک گذاری ارسال شده در ۱۱ اسفند ۱۳۹۳ سلام ممنون خطاهام رفع شد ولی در کل برنامه رو اجرا نمی کنه خطا میده Import های مورد نیاز نمونه کد بالا: [shcode=java] import java.util.Formatter; import java.util.IllegalFormatException; import java.util.Locale; import android.content.Context; import android.os.Handler; import android.os.Message; import android.os.SystemClock; import android.util.AttributeSet; import android.util.Log; import android.widget.Chronometer; [/shcode] نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
Farzad Sarseifi 575 ارسال شده در ۱۱ اسفند ۱۳۹۳ گزارش اشتراک گذاری ارسال شده در ۱۱ اسفند ۱۳۹۳ لطفا کدی که در Layout تعریف کردید رو بزارید؟ [shcode=xml] android:id="@+id/chronometer" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:textSize="16sp" /> [/shcode] نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
sz1370 0 ارسال شده در ۱۲ اسفند ۱۳۹۳ مالک گزارش اشتراک گذاری ارسال شده در ۱۲ اسفند ۱۳۹۳ سلام آقا ی مهندس دقیقا همینجوری که گفتید نوشتم بجا yourpackagename نام پکیج خودمو گذاشتم بازم صفحمو اجرا نمی کنه خطای عدم اجرا میده لطفا کدی که در Layout تعریف کردید رو بزارید؟ [shcode=xml] android:id="@+id/chronometer" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:textSize="16sp" /> [/shcode] نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
Farzad Sarseifi 575 ارسال شده در ۱۲ اسفند ۱۳۹۳ گزارش اشتراک گذاری ارسال شده در ۱۲ اسفند ۱۳۹۳ لطفا پروژه خود را قرار دهید تا بررسی کنیم آپلود سنتر انجمن http://p30droid.com/Uploader/ نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
sz1370 0 ارسال شده در ۱۲ اسفند ۱۳۹۳ مالک گزارش اشتراک گذاری ارسال شده در ۱۲ اسفند ۱۳۹۳ آپلود کردم http://p30droid.com/Uploader/do.php?id=522] http://p30droid.com/Uploader/do.php?id=522 لطفا پروژه خود را قرار دهید تا بررسی کنیم آپلود سنتر انجمن http://p30droid.com/Uploader/ نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
Farzad Sarseifi 575 ارسال شده در ۱۲ اسفند ۱۳۹۳ گزارش اشتراک گذاری ارسال شده در ۱۲ اسفند ۱۳۹۳ تایم خود را بصورت timeStamp باید وارد کنید نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
sz1370 0 ارسال شده در ۱۲ اسفند ۱۳۹۳ مالک گزارش اشتراک گذاری ارسال شده در ۱۲ اسفند ۱۳۹۳ [quote=timeStamp یعنی چطوری؟ Farzad Sarseify pid=10361 dateline=1425369571] تایم خود را بصورت timeStamp باید وارد کنید نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
Farzad Sarseifi 575 ارسال شده در ۱۲ اسفند ۱۳۹۳ گزارش اشتراک گذاری ارسال شده در ۱۲ اسفند ۱۳۹۳ بدین صورت تایم خود را به TimeStamp تبدیل کنید [shcode=java]Timestamp timestamp = Timestamp.valueOf("2007-09-23 10:10:10.0");[/shcode] نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
sz1370 0 ارسال شده در ۱۲ اسفند ۱۳۹۳ مالک گزارش اشتراک گذاری ارسال شده در ۱۲ اسفند ۱۳۹۳ ببخشید این خط رو من تو صفحه main activitiy بزارم !!!اگر با اون برنامه من جواب گرفتید میشه همونو واسم پیوست کنید؟ !!! ممنون میشم بدین صورت تایم خود را به TimeStamp تبدیل کنید [shcode=java]Timestamp timestamp = Timestamp.valueOf("2007-09-23 10:10:10.0");[/shcode] نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
Farzad Sarseifi 575 ارسال شده در ۱۲ اسفند ۱۳۹۳ گزارش اشتراک گذاری ارسال شده در ۱۲ اسفند ۱۳۹۳ بله باید این timestamp را به کنترل شمارنده ست کنید تا عمل کنید.شما اگر فقط تایم دارید میتوانید تایم را به تبدیل کنید و از تاریخ صرف نظر کنید. نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
sz1370 0 ارسال شده در ۱۲ اسفند ۱۳۹۳ مالک گزارش اشتراک گذاری ارسال شده در ۱۲ اسفند ۱۳۹۳ جواب نمیده بهم!!! نه دیگه من هم تعداد روزو ساعت و دقیقه و ثانیه باقیمانده رو می خوام بله باید این timestamp را به کنترل شمارنده ست کنید تا عمل کنید.شما اگر فقط تایم دارید میتوانید تایم را به تبدیل کنید و از تاریخ صرف نظر کنید. نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
sz1370 0 ارسال شده در ۱۳ اسفند ۱۳۹۳ مالک گزارش اشتراک گذاری ارسال شده در ۱۳ اسفند ۱۳۹۳ اقا ي مهندس من هر جور تونستم نوشتم ولي فكر كنم دارم شتبا مي نويسم كه بهم خطا ميده به هيچ راهي قابل حل شدن نيست اگر وقتشو داريد ممنون ميشم كمكم كنيد..... بله باید این timestamp را به کنترل شمارنده ست کنید تا عمل کنید.شما اگر فقط تایم دارید میتوانید تایم را به تبدیل کنید و از تاریخ صرف نظر کنید. نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
پست های پیشنهاد شده
به گفتگو بپیوندید
هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .