דילוג לתוכן
  • חוקי הפורום
  • פופולרי
  • לא נפתר
  • משתמשים
  • חיפוש גוגל בפורום
  • צור קשר
עיצובים
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • ברירת מחדל (ללא עיצוב (ברירת מחדל))
  • ללא עיצוב (ברירת מחדל)
כיווץ
מתמחים טופ
E

elhanan

@elhanan
אודות
פוסטים
25
נושאים
4
שיתופים
0
קבוצות
0
עוקבים
0
עוקב אחרי
0

פוסטים

פוסטים אחרונים הגבוה ביותר שנוי במחלוקת

  • בירור | יש דבר כזה מחשב נייד קורא סים (בלי צורך בסטיק חיצוני)?
    E elhanan

    יש המון
    תחפש מחשב עם תמיכה ב 4G LTE

    עזרה הדדית - מחשבים וטכנולוגיה

  • שיתוף | ספרייה לבורר תאריך עברי HebrewDatePicker
    E elhanan

    למי שרוצה בניתי ספרייה לאנדרואיד לבחירת תאריך עם תאריך עברי

    HebrewDatePicker: בורר תאריך עברי לאנדרואיד
    מינימום SDK

    minSdk = 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()
    }
    
    1. מבנה ואפשרויות 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 ו-HebrewDate

    3.2. מחלקת PickerMode (בשימוש רק ב-HebrewDatePickerDialog)

    CALENDAR
    תצוגת לוח שנה חודשי עברי.

    1. הקולבקים (Callbacks)
      4.1.
    .onGregorianSelected { selectedDate -> ... }
    

    מופעל כשהמשתמש מסיים לבחור תאריך. מחזיר אובייקט LocalDate.
    (LocalDate) -> Unit
    GREGORIAN או BOTH
    4.2.

    .onHebrewSelected { hebrewDate -> ... }
    

    מופעל כשהמשתמש מסיים לבחור תאריך. מחזיר מודל HebrewDate.
    (HebrewDate) -> Unit
    HEBREW או BOTH

    1. המרת התאריך (גמישות בפורמט ו-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
    E elhanan

    קודם כל המהירות המוצגת ב seedtest נמדדת במגהביט ולא במגהבית
    8 מגהביט = 1 מגהבית
    (כדי לדעת אם זה ביט או בית תראה אם כתוב MB (בית) או Mb (ביט)
    דבר שני המהירות תלויה גם בשרת השולח ולא רק אצלך
    לדוגמה, אם המהירות אצלי היא 1 מגהבית העלאה ואצלך 500 מגהבית הורדה ואתה מעתיק קובץ מאצלי אז המהירות תהיה לא יותר מ 1 מגהבית כי האינטרנט שלי מגביל את המהירות

    רשתות

  • בעיה | מהירות ההורדה בפועל לא כמו המהירות בבדיקה ב speedtest.net
    E elhanan

    @רפאל-vnkl
    המהירות תלויה גם בשרת השולח ולא רק אצלך
    לדוגמה, אם המהירות אצלי היא 1 מגהבית העלאה ואצלך 500 מגהבית הורדה ואתה מעתיק קובץ מאצלי אז המהירות תהיה לא יותר מ 1 מגהבית כי האינטרנט שלי מגביל את המהירות

    רשתות
  • התחברות

  • אין לך חשבון עדיין? הרשמה

  • התחברו או הירשמו כדי לחפש.
  • פוסט ראשון
    פוסט אחרון
0
  • חוקי הפורום
  • פופולרי
  • לא נפתר
  • משתמשים
  • חיפוש גוגל בפורום
  • צור קשר