Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 禁用时,NumberPicker不灰显_Android_Android Widget - Fatal编程技术网

Android 禁用时,NumberPicker不灰显

Android 禁用时,NumberPicker不灰显,android,android-widget,Android,Android Widget,我相信我可能在Android用户界面中发现了一个bug,但我想确保我没有完全做错什么。下面是我正在运行的导致问题的代码的简化版本。此侦听器设置在我的UI中的特定NumberPicker上,它可以正确地禁用/启用某些内容,但如果用户更改了它禁用的其他NumberPicker之一的值,则其行为会有点奇怪 它仍然正确地禁用了输入,但无法将值灰显,使其看起来仍然处于启用状态。这是有意的吗?我做错什么了吗 NumberPicker.OnValueChangeListener-diceChangeListe

我相信我可能在Android用户界面中发现了一个bug,但我想确保我没有完全做错什么。下面是我正在运行的导致问题的代码的简化版本。此侦听器设置在我的UI中的特定NumberPicker上,它可以正确地禁用/启用某些内容,但如果用户更改了它禁用的其他NumberPicker之一的值,则其行为会有点奇怪

它仍然正确地禁用了输入,但无法将值灰显,使其看起来仍然处于启用状态。这是有意的吗?我做错什么了吗

NumberPicker.OnValueChangeListener-diceChangeListener=新的NumberPicker.OnValueChangeListener(){
@凌驾
public void onValueChange(NumberPicker选择器、int-oldVal、int-newVal){
View parent=(View)picker.getParent();
如果(newVal==0){
((NumberPicker)parent.findViewById(R.id.diceCountPicker1)).setEnabled(false);
}else if(oldVal==0){
((NumberPicker)parent.findviewbyd(R.id.diceCountPicker1)).setEnabled(true);
}
}
};
让我知道是否有更好的方法来做到这一点,或者这是一个合法的错误。如果它是一个bug,有没有办法解决它

编辑:以下是XML中diceCountPicker1的定义:


编辑2:

我已经在模拟器中对此进行了测试,并确认在Jellybean(4.1)之前不存在此问题。它在ICS中正常工作。那是。。。烦人的但我现在也许能接受它。我将保留此选项,以寻找解决此错误的潜在方法,但在我看来,它像是一个真正的错误,我怀疑它是否可以修复。

尝试这种方法

        NumberPicker npicker = (NumberPicker) findViewById(R.id.diceCountPicker1);
        npicker.setMaxValue(100);
        npicker.setMinValue(0);

        npicker.setOnValueChangedListener(new OnValueChangeListener() {
            @Override
            public void onValueChange(NumberPicker picker, int oldVal,
                    int newVal) {
                // Conditions for Enable/Disable picker                 
                if (newVal == 0) {
                    picker.setEnabled(false);
                } else if (oldVal == 0) {
                    picker.setEnabled(true);
                }
            }
        });
它对我来说工作得很好,并且根据添加的条件使用Enable/Disable可以正常工作


谢谢。

好吧,由于没有其他反馈,我将继续并结束它。以下是我所知道的:


这似乎是Jellybean中引入的一个bug。我已经在模拟器中进行了测试,UI在ICS和更早版本中工作正常。目前,我只打算处理这个问题,并尝试提交一份正式的bug报告。

在NumberPicker和DatePicker xml布局中设置
android:enabled=“false”
不会使我在android 4.0.4设备上的控件变灰。但是,通过
setEnabled(false)
以编程方式执行此操作的效果与预期一样。

您能否发布一些布局代码,说明如何在xml文件中声明ur
diceCountPicker1
?使用NumberPicker的xml更新了问题。请参阅下面发布的解决方案。试试看,它对我很管用。谢谢,嗯。非常有趣。我刚刚在一个针对ICS的模拟器中进行了测试,结果很好。设置一个Jellybean仿真器,我一直在用手机测试JB,但我运行的定制rom可能有bug,而不是核心Android SDK。我一会儿就回来报告。这不是我正在做的。我有一个NumberPicker上的侦听器,它正在禁用其他几个NumberPicker。与我的代码相比,我看不出你所做的有什么不同。我猜你是在蜂窝或ICS中测试的?