如何为我的自定义对象创建拾轮器?

时间:2018-09-11 15:24:18

标签: android android-layout user-interface android-recyclerview

我想让用户通过外观类似于用于在数据选择器中选择日/月/年的车轮选择器的车轮选择器从ArrayList<MyObjectType>中选择一个元素。虽然日期选择器显然具有三个变量,但我只关心一个变量。

Month picker

实现这种选择器最直接的方法是什么?

3 个答案:

答案 0 :(得分:4)

NumberPicker在Android窗口小部件中提供。这就是您想要的。

解决方案

<NumberPicker
    android:id="@+id/numberPicker"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"/>

和Java

NumberPicker np = findViewById(R.id.numberPicker);
String[] months3char = get3CharMonths();
np.setMaxValue(months3char.length - 1); // important
np.setDisplayedValues(months3char); // custom values

private String[] get3CharMonths() {
    String[] months = new DateFormatSymbols().getMonths();
    String[] months3char = new String[months.length];
    for (int i = 0; i < months.length; i++) {
        String month = months[i];
        months3char[i] = month.length() < 3 ? month : month.substring(0, 3);
    }
    return months3char;
}

Output

答案 1 :(得分:3)

好吧,您可以简单地将NumberPicker用作mention here

或者去图书馆WheelView

Here是具有多个选择器的实现

答案 2 :(得分:0)

您可以使用自定义DialogFragment来显示类似日期选择器的对话框。

例如,如果您的MyObjectType有3个字段,并且您希望用户选择它。

1-创建3个recyclerview,每个回收器显示MyObjectType中的一个字段。

2-在对话框中为MyObjectType的arraylist创建for循环,并创建3个自定义arraylist,每个字段都有自己的arraylist。我们将使用arraylist在recyclerview中显示该字段的值。 在for循环中,将每个字段添加到其arraylist中。例如arraylistField1.add(MyObjectType.getfield1());

3-创建3个适配器,每个适配器用于一个recyclerview以显示自定义阵列列表。

4-当用户单击“确定”时,从每个适配器获取选定的值。