如何制作适合其他视图的自定义Android字符串选择器?

时间:2015-10-30 17:50:33

标签: android string android-view picker

我一直在研究Android Pickers,如here所述。

有时间,日期和数字字段的选择器,但令我惊讶的是,我发现基本字符串没有通用的选择器。

我找到了几个资源,讨论如何重新使用NumberPicker来使用字符串,如下所示:

Android picker widget for arbitrary strings

https://github.com/hotchemi/StringPicker/blob/master/library/src/main/java/hotchemi/stringpicker/StringPicker.java

这看起来很有希望,但我的最终目标是让我的字符串选择器适合我的主视图中的面板而不是弹出视图。我需要这样做,因为我的视图的顶部有一个对象,它已根据选择器中选择的内容进行修改,因此需要实时显示以显示给定属性的不同值如何影响其外观。

有没有办法做到这一点?

1 个答案:

答案 0 :(得分:8)

您只需使用NumberPicker而无需任何库来实现它 我也有同样的问题,我找到了解决方案。我像这样使用了NumberPicker,效果非常好。

在picker_layout中添加数字选择器并在主要布局上显示动画布局。

在你的课堂上使用它......

<NumberPicker
     android:id="@+id/numberPicker1"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:orientation="vertical" /> 


numberPicker1= (NumberPicker) findViewById(R.id.numberPicker1);
final String genders[] = { "unassessed", "Skipped", "Incorrect", "Correct", "1 mark" };

numberPicker1.setMinValue(0);
numberPicker1.setMaxValue(genders.length - 1);
numberPicker1.setDisplayedValues(genders);
numberPicker1.setDescendantFocusability(NumberPicker.FOCUS_BLOCK_DESCENDANTS);

NumberPicker.OnValueChangeListener myValChangedListener = new NumberPicker.OnValueChangeListener() {
 @Override
 public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
     btnBar.setText("Value: " + genders[newVal]);
 }
};

numberPicker1.setOnValueChangedListener(myValChangedListener);