【问题标题】:Number picker is freezing the app - why so?号码选择器正在冻结应用程序 - 为什么会这样?
【发布时间】:2018-11-15 09:46:38
【问题描述】:

我正在创建一个水平方向的 NumberPicker,它冻结了我的应用程序。初始状态是选取器不可见。在一种方法中,我将其设置为可见并将数据推送到其中

        if (_regalPicker != null) {
        _regalPicker.setVisibility(View.VISIBLE);
        String[] templist = new String[arr.size()];
        for (int i = 0; i < arr.size(); i++) {
            templist[i] = arr.get(i).name;
        }
        _regalPicker.setDisplayedValues(null);
        _regalPicker.setMinValue(0);
        _regalPicker.setMaxValue(templist.length - 1);
        _regalPicker.setDisplayedValues(templist);
        _regalPicker.setValue(1);
        _regalPicker.setEnabled(true);
        _regalPicker.setFadingEdgeEnabled(true);
        _regalPicker.setScrollerEnabled(true);
        _regalPicker.setWrapSelectorWheel(true);
        _regalPicker.invalidate();
    }

它会更新 Strings,但我无法再滚动它了。有任何想法吗? 我的分隔线也没有更新。

【问题讨论】:

标签: java android numberpicker


【解决方案1】:

您可以在不使用线程冻结应用的情况下刷新您的用户界面

Thread thread = new Thread(){
       public void run(){

            String[] templist = new String[arr.size()];
                    for (int i = 0; i < arr.size(); i++) {
                        templist[i] = arr.get(i).name;
                    }

            runOnUiThread(new Runnable(){
                @Override
                public void run(){
                    // change UI elements here
                    if (_regalPicker != null) {
                        _regalPicker.setVisibility(View.VISIBLE);
                        _regalPicker.setDisplayedValues(null);
                        _regalPicker.setMinValue(0);
                        _regalPicker.setMaxValue(templist.length - 1);
                        _regalPicker.setDisplayedValues(templist);
                        _regalPicker.setValue(1);
                        _regalPicker.setEnabled(true);
                        _regalPicker.setFadingEdgeEnabled(true);
                        _regalPicker.setScrollerEnabled(true);
                        _regalPicker.setWrapSelectorWheel(true);
                        _regalPicker.invalidate();
                  }

                }
            });

       }
    }        
thread.start();

【讨论】:

  • 仍然没有改变...我的布局已刷新,但我无法在选择器中单击或滚动
  • @Damaro 哦,对不起,我没有注意到你的问题的结尾......你应该用你的 XML 布局显示更多代码
猜你喜欢
  • 2012-01-12
  • 1970-01-01
  • 2011-11-13
  • 1970-01-01
  • 1970-01-01
  • 2022-01-23
  • 2020-02-23
  • 2022-12-09
  • 1970-01-01
相关资源
最近更新 更多