我想确保用户点击数字选择器中的值,完成后,我会采取行动。我已经写了下面的代码。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);
});