我擴展了NumberPicker類,我將它重寫爲setOnValueChangedListener,但是當我調試代碼時,我點擊了numberpicker的加號按鈕,它永遠不會傳入方法setOnValueChangedListener中的斷點處。 有什麼不對嗎?Android的numberpicker,永遠不會從OnValueChangedListener斷點傳遞
@TargetApi(Build.VERSION_CODES.HONEYCOMB)//For backward-compability
public class NumberPickerCustom extends NumberPicker
{
private int clickNumber = 0;
public NumberPickerCustom(Context context) {
super(context);
}
public NumberPickerCustom(Context context, AttributeSet attrs) {
super(context, attrs);
processAttributeSet(attrs);
}
public NumberPickerCustom(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
processAttributeSet(attrs);
}
private void processAttributeSet(AttributeSet attrs) {
//This method reads the parameters given in the xml file and sets the properties according to it
this.setMinValue(attrs.getAttributeIntValue(null, "min", 0));
this.setMaxValue(attrs.getAttributeIntValue(null, "max", 0));
this.setValue(attrs.getAttributeIntValue(null, "value", 0));
}
@Override
public void setOnValueChangedListener(
OnValueChangeListener onValueChangedListener)
{
super.setOnValueChangedListener(onValueChangedListener);
if (onValueChangedListener==null)
{
onValueChangedListener = new OnValueChangeListener() {
@Override
public void onValueChange(NumberPicker picker, int oldVal, int newVal)
{
clickNumber++;
if (clickNumber>10)
{
clickNumber = -1000;
Toast.makeText(getContext(), "Clicca sul numero centrale per inserire direttamente un valore", Toast.LENGTH_SHORT).show();
}
}
};
}
}
}
您的自定義NumberPicker你不需要自定義數字選擇器設定分鐘最大值。你可以使用'np.setMaxValue(100); np.setMinValue(0)'。爲什麼你需要一個自定義數字選擇器? – Raghunandan
是的,我知道,我只認爲它更優雅:D 但問題不是這個,你知道爲什麼聽者是錯的嗎? – Accollativo