range preference

This commit is contained in:
serso
2011-09-19 16:00:22 +04:00
parent ece3d053ff
commit d999d8b9df
5 changed files with 478 additions and 53 deletions

View File

@@ -1,53 +0,0 @@
package org.solovyev.android.view.prefs;
import android.content.Context;
import android.preference.DialogPreference;
import android.util.AttributeSet;
import android.view.Gravity;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.SeekBar;
import android.widget.TextView;
import org.jetbrains.annotations.NotNull;
import org.solovyev.android.view.widgets.NumberPicker;
/**
* User: serso
* Date: 9/19/11
* Time: 12:27 PM
*/
public class IntervalPreference extends AbstractDialogPreference implements NumberPicker.OnChangedListener {
@NotNull
private final NumberPicker leftBorder;
@NotNull
private final NumberPicker rightBorder;
public IntervalPreference(@NotNull Context context, AttributeSet attrs) {
super(context, attrs);
this.leftBorder = new NumberPicker(context);
this.rightBorder = new NumberPicker(context);
}
@Override
public void onChanged(NumberPicker picker, int oldVal, int newVal) {
/* if (shouldPersist())
persistString(value);
callChangeListener(new Integer(value));*/
}
@Override
protected LinearLayout onCreateDialogView() {
final LinearLayout result = super.onCreateDialogView();
final LinearLayout horizontal = new LinearLayout(context);
horizontal.setOrientation(LinearLayout.HORIZONTAL);
horizontal.addView(leftBorder);
horizontal.addView(rightBorder);
return result;
}
}

View File

@@ -0,0 +1,45 @@
package org.solovyev.android.view.prefs;
import android.content.Context;
import android.util.AttributeSet;
import android.widget.LinearLayout;
import org.jetbrains.annotations.NotNull;
import org.solovyev.android.view.widgets.NumberPicker;
import org.solovyev.android.view.widgets.RangeSeekBar;
/**
* User: serso
* Date: 9/19/11
* Time: 12:27 PM
*/
public abstract class RangeSeekPreference<T extends Number> extends AbstractDialogPreference implements RangeSeekBar.OnRangeSeekBarChangeListener<T> {
@NotNull
private final RangeSeekBar<T> rangeSeekBar;
public RangeSeekPreference(@NotNull Context context, AttributeSet attrs) {
super(context, attrs);
this.rangeSeekBar = new RangeSeekBar<T>(getMinValue(), getMaxValue(), context);
rangeSeekBar.setOnRangeSeekBarChangeListener(this);
}
@NotNull
abstract T getMinValue();
@NotNull
abstract T getMaxValue();
@Override
protected LinearLayout onCreateDialogView() {
final LinearLayout result = super.onCreateDialogView();
result.addView(rangeSeekBar);
return result;
}
@Override
public void rangeSeekBarValuesChanged(T minValue, T maxValue) {
//To change body of implemented methods use File | Settings | File Templates.
}
}