יש המון
תחפש מחשב עם תמיכה ב 4G LTE
elhanan
-
בירור | יש דבר כזה מחשב נייד קורא סים (בלי צורך בסטיק חיצוני)? -
שיתוף | ספרייה לבורר תאריך עברי HebrewDatePickerלמי שרוצה בניתי ספרייה לאנדרואיד לבחירת תאריך עם תאריך עברי
HebrewDatePicker: בורר תאריך עברי לאנדרואיד
מינימום SDKminSdk = 26
ספריית אנדרואיד פשוטה וגמישה המאפשרת בחירה קלה של תכים עבריים או המרתם לתאריך גרגוריאני (לועזי). הספרייה מציעה שתי תצוגות: לוח שנה (לוח שנה) וגלגלת (גלגל/ספינר).
התקנה
1.1. תלות בגריידל
וודא שיש לך את jitpack (בקובץ setting.gradel.kts גם בתוך pluginManagement וגם ב dependencyResolutionManagement)maven("https://jitpack.io")
כדי להשתמש בספרייה, הוסף את התלות (תלות) הבאה לקובץ ה-Gradle של המודול שלך (app/build.gradle.kts):
// build.gradle.kts (רמת מודול:app) dependencies { implementation("com.github.FAISEL95595:HebrewDatePicker:1.5.1") // גרסה אחרונה כרגע }
שימוש והפעלה (דוגמאות)
הספרייה מספקת שני דיאלוגים ראשיים: HebrewDateWheelDialog (גלגלת) ו-HebrewDatePickerDialog (לוח שנה).2.1. ייבוא נדרש
בפעילות (פעילות) או בפרגמנט שבו אתה מציג את הדיאלוג:
import com.faisel.hebrewdatepicker.ui.HebrewDateWheelDialog // אם אתה רוצה ספינר/גלגלת import com.faisel.hebrewdatepicker.ui.HebrewDatePickerDialog // אם אתה רוצה בורר רגיל import com.faisel.hebrewdatepicker.ui.OutputType import com.faisel.hebrewdatepicker.ui.PickerMode import com.faisel.hebrewdatepicker.model.HebrewDate import java.time.LocalDate // אם אתה רוצה שיחזיר תאריך גרגוריאני import java.time.ZoneId // נדרש להמרה ל-Timestamp import java.time.format.DateTimeFormatter // אם אתה רוצה לשנות את הפורמט של התאריך
2.2. הפעלת בורר הגלגלת (HebrewDateWheelDialog)
הדיאלוג הזה משתמש בתצוגת גלגלים לבחירת יום, חודש ושנה.
private fun showHebrewWheelDialog() { // הגדרת תאריך התחלתי (לדוגמה, התאריך שנבחר כרגע או Date()) val initialDate = selectedCalendar.time HebrewDateWheelDialog.Builder(this) .setDate(initialDate) .setOutputType(OutputType.GREGORIAN) // מחזיר רק תאריך לועזי (LocalDate) .onGregorianSelected { selectedDate -> // --- אפשרות א: שינוי פורמט התאריך (מחרוזת) --- val formatter = DateTimeFormatter.ofPattern("EEEE, dd/MM/yyyy") // לדוגמה: יום, 20/10/2025 val formattedDateString = selectedDate.format(formatter) // --- אפשרות ב: קבלת Timestamp --- val timestampInMilliseconds: Long = selectedDate .atStartOfDay(ZoneId.systemDefault()) .toInstant() .toEpochMilli() // עדכון הממשק binding.tvGregorianDate.text = formattedDateString // ... שמירת ה-Timestamp ... } .onHebrewSelected { hebrewDate -> // קולבק זה יופעל גם אם OutputType.BOTH מוגדר // hebrewDate מכיל: יום (Int), חודש (Int), שנה (Int), חודש עברי (String) // Toast.makeText(this, "התאריך העברי: ${hebrewDate.hebrewMonthName} ${hebrewDate.hebrewDay}", Toast.LENGTH_SHORT).show() } .build() .show() }
2.3. הפעלת בורר לוח השנה (HebrewDatePickerDialog)
הדיאלוג הזה משתמש בתצוגת לוח שנה.
private fun showHebrewCalendarDialog() { // שימו לב: HebrewDatePickerDialog דורש גם הגדרת PickerMode HebrewDatePickerDialog.Builder(this) .setMode(PickerMode.CALENDAR) .setOutputType(OutputType.BOTH) // יחזיר גם עברי וגם לועזי // אין אפשרות setDate בפיקר הזה, הוא מתחיל מהתאריך הנוכחי .onGregorianSelected { selectedDate -> // ... לוגיקה ... } .onHebrewSelected { hebrewDate -> // ... לוגיקה ... } .build() .show() }
- מבנה ואפשרויות API מפורטות
3.1. מחלקת OutputType
זהו enum class המגדיר את הפורמט של התוצאה שתחזור מהדיאלוג. יש לקרוא לאחד מהקולבקים המתאימים (onGregorianSelected או onHebrewSelected) בהתאם ל-OutputType שבחרת.
.setOutputType(OutputType.HEBREW) .setOutputType(OutputType.GREGORIAN) .setOutputType(OutputType.BOTH)
שימושב:
HEBREW
יחזיר רק את התאריך העברי.
.onHebrewSelected com.faisel.hebrewdatepicker.model.HebrewDate
שימוש ב:
GREGORIAN
יחזיר רק את התאריך הלועזי.
.onGregorianSelected java.time.LocalDate
שימוש ב:
BOTH
יחזיר את שני סוגי התאריכים.
אחד או שני הקולבקים
LocalDate ו-HebrewDate3.2. מחלקת PickerMode (בשימוש רק ב-HebrewDatePickerDialog)
CALENDAR
תצוגת לוח שנה חודשי עברי.- הקולבקים (Callbacks)
4.1.
.onGregorianSelected { selectedDate -> ... }
מופעל כשהמשתמש מסיים לבחור תאריך. מחזיר אובייקט LocalDate.
(LocalDate) -> Unit
GREGORIAN או BOTH
4.2..onHebrewSelected { hebrewDate -> ... }
מופעל כשהמשתמש מסיים לבחור תאריך. מחזיר מודל HebrewDate.
(HebrewDate) -> Unit
HEBREW או BOTH- המרת התאריך (גמישות בפורמט ו-Timestamp)
הספרייה מחזירה אובייקטים מובנים (LocalDate ו-HebrewDate), המאפשרים לך לעצב את הפלט כרצונך.
5.1. שליטה מלאה בפורמט ה-String
כדי לשנות את סדר היום/חודש/שנה או את אופן ההצגה (כמו הוספת שם יום או חודש מלא), השתמש ב-DateTimeFormatter בתוך הקולבק:
.onGregorianSelected { selectedDate -> // יום בשבוע מלא, יום נומרי, חודש נומרי, שנה מלאה (לדוגמה: Monday, 20-10-2025) val customFormatter = DateTimeFormatter.ofPattern("EEEE, dd-MM-yyyy") val dateDisplay = selectedDate.format(customFormatter) // ... }
5.2. המרה ל-Timestamp (מספר)
כדי לקבל את התאריך כ-Timestamp (Long - מספר המילישניות מאז $1970$):.onGregorianSelected { selectedDate -> val timestampInMilliseconds: Long = selectedDate .atStartOfDay(ZoneId.systemDefault()) // המרת תחילת היום באזור זמן מקומי .toInstant() .toEpochMilli() // התוצאה היא מספר ה-Timestamp Toast.makeText(this, "Timestamp: $timestampInMilliseconds", Toast.LENGTH_LONG).show() //דוגמה לקבלת output }
-
בעיה | מהירות ההורדה בפועל לא כמו המהירות בבדיקה ב speedtest.netקודם כל המהירות המוצגת ב seedtest נמדדת במגהביט ולא במגהבית
8 מגהביט = 1 מגהבית
(כדי לדעת אם זה ביט או בית תראה אם כתוב MB (בית) או Mb (ביט)
דבר שני המהירות תלויה גם בשרת השולח ולא רק אצלך
לדוגמה, אם המהירות אצלי היא 1 מגהבית העלאה ואצלך 500 מגהבית הורדה ואתה מעתיק קובץ מאצלי אז המהירות תהיה לא יותר מ 1 מגהבית כי האינטרנט שלי מגביל את המהירות -
בעיה | מהירות ההורדה בפועל לא כמו המהירות בבדיקה ב speedtest.net@רפאל-vnkl
המהירות תלויה גם בשרת השולח ולא רק אצלך
לדוגמה, אם המהירות אצלי היא 1 מגהבית העלאה ואצלך 500 מגהבית הורדה ואתה מעתיק קובץ מאצלי אז המהירות תהיה לא יותר מ 1 מגהבית כי האינטרנט שלי מגביל את המהירות