NumberPicker 的 onClick 侦听器需要多次点击才能识别



我想确保用户点击数字选择器中的值,完成后,我会采取行动。我已经写了下面的代码。numberPicker是在底部的SheetDialogFragment中创建的。

nPicker.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
NumberPicker p = v.findViewById(R.id.numberpicker_picker);
Log.e("picker selected", ""+p.getValue());
}

上面的代码在一定程度上运行良好,但在识别点击之前,它必须在数字选择器上点击多次。

有人知道为什么会这样吗?是否有解决方案?

您可能需要使用onValueChangeListener()。点击量可能被这个监听器消耗掉了,所以你的onClick(View v)不起作用。

numberPicker.setOnValueChangedListener((numberPicker, oldValue, newValue) -> {
Log.e("picker selected", ""+newValue);
});

最新更新