android numberpicker 不循环,android - 当NumberPicker不只滚动(按加号或减号)时,如何从onValueChange获取NumberPicker实例的值 - 堆...

在Android应用中,遇到NumberPicker滚动时的滞后问题。当用户滚动或点击增量/减量按钮时,需要实时更新TextView的值而不影响性能。目前在onScrollChanged()中获取值并在滚动停止时更新TextView,但在onValueChange()中更新导致滚动变慢。寻求解决方案以在保持流畅滚动的同时,确保NumberPicker值的实时显示。
摘要由CSDN通过智能技术生成

我有一个NumberPicker实例,它可以按预期工作,但是当滚动停止时或者当用户仅按下增量/减量按钮时,我需要从中获取值。 我应该得到的值显示在文本视图中。

当滚动停止/变得空闲并正确显示时,我设法获得了该值(在onScrollChanged()侦听器中完成)。

但onScrollChanged()时,在增量或减量按钮的用户请,如果我使用监听器不会被解雇onValueChanged()监听文字更新,但滚动变得非常laggy和慢(如在更新时的值更改的所有时间的结果)。

因此,我需要帮助,如何始终显示NumberPicker的值,而不会导致NumberPicker滚动的滞后或减慢。

代码如下:

NumberPicker milisecoundsNumberPicker = (NumberPicker) findViewById(R.id.numberPicker);

milisecNumberPicker.setFocusable(false);

milisecNumberPicker.setFocusableInTouchMode(false);

TextView textNumber = (TextView) findViewById(R.id.selectednum);

milisecNumberPicker.setMaxValue(10);

milisecNumberPicker.setMinValue(0);

milisecNumberPicker.setWrapSelectorWheel(false);

String[] nums = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10" };

milisecNumberPicker.setDisplayedValues(nums);// array of numbers

milisecNumberPicker.setOnScrollListener(new OnScrollListener() {

@Override

public void onScrollStateChange(NumberPicker view, int scrollState) {

if (scrollState == OnScrollListener.SCROLL_STATE_IDLE

|| scrollState == OnScrollListener.SCROLL_STATE_TOUCH_SCROLL) {

view.getValue();

textNumber.setText(view.getValue() + "");

//this is ok no lagging but will not work on pressing increments and decrements buttons

}

}

});

// If I use this

milisecNumberPicker.setOnValueChangedListener(new OnValueChangeListener() {

@Override

public void onValueChange(NumberPicker picker, int oldVal, int newVal) {

// set Text value here causing lagging on scrolling

}

});

抱歉,格式化不好,我是新手,但是在这个主题上任何人都可以帮助我。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值