I extended NumberPicker
with several methods needed in my application. When I came to defining a OnValueChangeListener
this is how I did it:
import android.widget.NumberPicker;
interface ValueChangeCallback {
public void execute(RemListView list, int oldVal, int newVal);
}
public class RemListView extends NumberPicker {
ValueChangeCallback mValueChangeCallback;
RemListView thisList = this;
public void setValueChangeCallback(ValueChangeCallback callback) {
mValueChangeCallback = callback;
setOnValueChangedListener(new NumberPicker.OnValueChangeListener() {
@Override
public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
mValueChangeCallback.execute(thisList, oldVal, newVal);
}
});
}
}
This code works fine but I'm new to Android and somehow I'm not sure I did it the proper way so I'm asking for a code review.
Do I have to save the callback in member variable?
I couldn't access this
from within callback so I introduced thisList
variable. Can it be avoided?