Skip to content

Commit ebae7e1

Browse files
committed
Add OnBindNumberPickerListener interface
1 parent 564e32c commit ebae7e1

File tree

2 files changed

+18
-0
lines changed

2 files changed

+18
-0
lines changed

numberpicker/src/main/kotlin/androidx/preference/NumberPickerPreference.kt

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import android.content.res.TypedArray
55
import android.os.Parcel
66
import android.os.Parcelable
77
import android.util.AttributeSet
8+
import android.widget.NumberPicker
89
import crazyboyfeng.android.preference.NumberPickerPreferenceDialogFragmentCompat
910
import crazyboyfeng.android.preference.numberpicker.R
1011
import java.util.*
@@ -24,6 +25,22 @@ class NumberPickerPreference @JvmOverloads constructor(
2425
}
2526
}
2627

28+
/**
29+
* Interface definition for a callback to be invoked when the corresponding dialog view for
30+
* this preference is bound. This allows you to customize the [NumberPicker] displayed
31+
* in the dialog, such as setting a max length or a specific input type.
32+
*/
33+
interface OnBindNumberPickerListener {
34+
/**
35+
* Called when the dialog view for this preference has been bound, allowing you to
36+
* customize the [NumberPicker] displayed in the dialog.
37+
*
38+
* @param numberPicker The [NumberPicker] displayed in the dialog
39+
*/
40+
fun onBindNumberPicker(numberPicker: NumberPicker)
41+
}
42+
43+
val onBindNumberPickerListener: OnBindNumberPickerListener? = null
2744
var minValue: Int
2845
var maxValue: Int
2946
var wrapSelectorWheel: Boolean

numberpicker/src/main/kotlin/crazyboyfeng/android/preference/NumberPickerPreferenceDialogFragmentCompat.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ class NumberPickerPreferenceDialogFragmentCompat : PreferenceDialogFragmentCompa
3232
value = numberPicker!!.minValue
3333
}
3434
numberPicker!!.value = value
35+
numberPickerPreference.onBindNumberPickerListener?.onBindNumberPicker(numberPicker!!)
3536
super.onBindDialogView(view)
3637
}
3738

0 commit comments

Comments
 (0)