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

Posted

技术标签:

【中文标题】如何制作适合另一个视图的自定义 Android 字符串选择器?【英文标题】:How to make custom Android string Picker that fits inside another view? 【发布时间】:2015-10-30 17:50:33 【问题描述】:

我一直在研究 android 选择器,如 here 所述。

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

我找到了一些资源,讨论如何将 NumberPicker 重新用于使用字符串,如下所示:

Android picker widget for arbitrary strings

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

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

有什么办法吗?

【问题讨论】:

【参考方案1】:

你只需要使用NumberPicker 没有任何库就可以实现它 我也有同样的问题,我找到了解决方案。我像这样使用NumberPicker,效果很好。

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

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

<NumberPicker
     android:id="@+id/numberPicker1"
     android:layout_
     android:layout_
     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);

【讨论】:

以上是关于如何制作适合另一个视图的自定义 Android 字符串选择器?的主要内容,如果未能解决你的问题,请参考以下文章

android中的自定义视图

如何从情节提要中的自定义视图制作@IBAction?

Android中的自定义视图控件

如何在android中制作带有圆角的自定义对话框

如何制作与搜索栏和设计一起使用的自定义表格视图

从 xml 制作自定义视图