我在我的布局中添加了NumberPicker并调试了我的应用程序。现在我看到NumberPicker不起作用,我看不到任何“+”或“ - ”按钮,当我点击键盘上的数字时,没有任何反应。
这是我的布局文件:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:background="#99cc00"
tools:context=".Gewichtsentwicklung" >
<NumberPicker
android:id="@+id/numberPicker1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="80dp" />
<TextView
android:id="@+id/tvGewichtUeberschrift"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_centerHorizontal="true"
android:textColor="@color/white"
android:textSize="13pt"
android:layout_alignParentTop="true"
android:text="Aktuelles Gewicht eingeben" />
<Button
android:id="@+id/btGewicht"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_below="@+id/numberPicker1"
android:layout_marginTop="79dp"
android:text="Gewicht speichern" />
问题在哪里?
答案 0 :(得分:33)
您实际上是否使用值填充数字选择器?如下图所示?
NumberPicker np = (NumberPicker) findViewById(R.id.numberPicker1);
String[] nums = new String[20];
for(int i=0; i<nums.length; i++)
nums[i] = Integer.toString(i);
np.setMinValue(1);
np.setMaxValue(20);
np.setWrapSelectorWheel(false);
np.setDisplayedValues(nums);
np.setValue(1);
答案 1 :(得分:4)
数字选择器没有+
或-
将其视为更多滚轮。你必须设置它的最小数量和最大数量才能真正显示
setMinValue(5);
setMaxValue(120);
如果单击选取器的顶部,则会增加数字,如果单击选择器的底部,则会减少数量
答案 2 :(得分:0)
确保将setMinValue和setMaxValue和setValue传递给索引,而不是真实值。这是一个示例,0-500,跳过10:
NumberPicker number_picker = mRootView.findViewById(R.id.number_picker);
String[] values = new String[51];
for (int i = 0; i < values.length; i++) {
String number = Integer.toString(i * 10);
values[i] = number;
}
number_picker.setMinValue(0);
number_picker.setMaxValue(50);
number_picker.setWrapSelectorWheel(false);
number_picker.setDisplayedValues(values);
number_picker.setValue(20);
number_picker.setOnValueChangedListener((picker, oldVal, newVal) ->
{
//update with newVal
}
);