Как убрать глюк в NumberPicker?
У меня в программе три авторских NumberPicker в ряд. Они прекрасно работают. Но при открытии программы в первом NumberPicker появляется буква "Б", которой даже нет в его массиве. Я всё проверила и не понимаю, откуда она взялась. Помогите, пожалуйста, если у вас есть хоть какие-то предположения на эту тему.
Основная активность:
private MyNumberPicker myNumberPicker;
private MyNumberPicker2 myNumberPicker2;
private MyNumberPicker3 myNumberPicker3;
private TextView tvNumber,tvResult;
//Позиция (int) в массиве
int pos,pos2,pos3;
//Создадим массивы значений
//Для размера шрифта
final String[] values = {"12", "14", "16", "20"};
//Для жирного и нормального шрифта
final String[] values2 = {"В", "N", "B", "N"};
//Для цвета шрифта
final String[] values3 = {"Б", "Ч", "К", "С","Ж","З"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myNumberPicker = (MyNumberPicker) findViewById
(R.id.my_number_picker);
myNumberPicker2 = (MyNumberPicker2) findViewById
(R.id.my_number_picker2);
myNumberPicker3 = (MyNumberPicker3) findViewById
(R.id.my_number_picker3);
tvNumber= (TextView) findViewById(R.id.hnp_tv_number);
tvResult= (TextView) findViewById(R.id.tv_result);
//Изменяем цвет фона
myNumberPicker2.setBackgroundColor(Color.YELLOW);
myNumberPicker.setInitialValue(0);
myNumberPicker.setMinValue(0);
myNumberPicker.setMaxValue(values.length-1);
myNumberPicker2.setInitialValue(0);
myNumberPicker2.setMinValue(0);
myNumberPicker2.setMaxValue(values2.length-1);
myNumberPicker3.setInitialValue(0);
myNumberPicker3.setMinValue(0);
myNumberPicker3.setMaxValue(values3.length-1);
/*
//Задаём значения, которые будут отображаться в numberPicker.
myNumberPicker.setDisplayedValues(values);
myNumberPicker2.setDisplayedValues(values2);
myNumberPicker3.setDisplayedValues(values3);
*/
//Устанавливаем, должно ли отображаться первое число,
//как только мы достигнем конца.
myNumberPicker.setWrapSelectorWheel(true);
myNumberPicker2.setWrapSelectorWheel(true);
myNumberPicker3.setWrapSelectorWheel(true);
//Получить позицию из NumberPicker
pos=myNumberPicker.getValue();
pos2=myNumberPicker2.getValue();
pos3=myNumberPicker3.getValue();
//Изменяем значение tvResult
if(pos<=values.length-1)
tvResult.setText(values[pos]);
if(pos2<=values2.length-1)
tvResult.setText(values2[pos2]);
if(pos3<=values3.length-1)
tvResult.setText(values3[pos3]);
}
}
А это макет NumberPicker. У меня все три счётчика с одним макетом, но с разными, но аналогичными классами.
<merge xmlns:android="http://schemas.android.com/apk/res/android">
<RelativeLayout
android:layout_width="80dp"
android:layout_height="80dp"
android:background="#CCCCCC00"
>
<TextView
android:id="@+id/hnp_tv_number"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
android:textSize="30dp"
android:textStyle="bold"
android:layout_marginRight="4dp"
android:textColor="#CCCCCC00"
/>
<TextView
android:id="@+id/tv_result"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""
android:textSize="30dp"
android:layout_centerHorizontal="true"
/>
</RelativeLayout>
</merge>
Слушатели в классах счётчиков аналогичные:
//Создаём слушатель для TextView
//При нажатии текста значение меняется на следующую цифру
tvNumber.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//При нажатии выводим следующую цифру
setValue(getValue()+1);
//Если цифра равна макс значению+1,
//выводим минимальное значение
if(getValue()==getMaxValue()+1)
setValue(getMinValue());
//Получить позицию из NumberPicker
pos=getValue();
//Изменяем значение tvResult
if(pos<=values.length-1)
tvResult.setText(values[pos]);
}
});