Android-多个NumberPicker值由外部总值限制
创始人
2024-08-19 18:00:09
0

使用NumberPicker的OnValueChangeListener接口来监测NumberPicker值的变化。在每次值变化时,更新其他NumberPicker的最大值和最小值,以确保它们的总和始终等于预设的总值。以下是一个示例实现:

public class MainActivity extends AppCompatActivity implements NumberPicker.OnValueChangeListener {
    private NumberPicker np1, np2, np3;
    private int totalValue = 100;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        np1 = findViewById(R.id.np1);
        np2 = findViewById(R.id.np2);
        np3 = findViewById(R.id.np3);

        np1.setOnValueChangedListener(this);
        np2.setOnValueChangedListener(this);
        np3.setOnValueChangedListener(this);

        np1.setMaxValue(totalValue);
        np2.setMaxValue(totalValue - np1.getValue());
        np3.setMaxValue(totalValue - np1.getValue() - np2.getValue());
    }

    @Override
    public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
        int newTotal = newVal + np2.getValue() + np3.getValue();
        int diff = totalValue - newTotal;

        if (diff < 0) {
            // The new value exceeds the total.
            picker.setValue(oldVal);
            return;
        }

        // Update the maximum values of the other NumberPickers.
        switch (picker.getId()) {
            case R.id.np1:
                np2.setMaxValue(diff);
                np3.setMaxValue(totalValue - newVal - np2.getValue());
                break;
            case R.id.np2:
                np1.setMaxValue(diff + newVal);
                np3.setMaxValue(totalValue - np1.getValue() - newVal);
                break;
            case R.id.np3:
                np1.setMaxValue(diff + newVal + np2.getValue());
                np2.setMaxValue(totalValue - np1.getValue() - newVal);
                break;
        }
    }
}

相关内容

热门资讯

热门推荐!hhpoker一直输... 热门推荐!hhpoker一直输有挂吗,wepoker破解器,透牌教程(有挂神器);科技安装教程;13...
我来向大家传授!wepoker... 我来向大家传授!wepoker游戏的安装教程,德普之星有透视辅助吗,黑科技教程(有挂辅助);致您一封...
一起来探讨!德州局HHpoke... 一起来探讨!德州局HHpoker透视脚本,wepoker手机版透视脚本,技巧教程(有挂辅助)1、点击...
玩家必看秘籍!hhpoker真... 玩家必看秘籍!hhpoker真的有透视吗,hhpoker辅助靠谱吗,微扑克教程(有挂技巧);实战中需...
科技通报!wejoker辅助器... 科技通报!wejoker辅助器要钱玩吗,wepoker怎么设置透视,扑克教程(有挂神器);人气非常高...
重大通报!wepoker可以免... 重大通报!wepoker可以免费玩吗,聚星ai辅助工具收费多少,wepoke教程(有挂辅助);建议优...
重大通报!wejoker辅助器... 重大通报!wejoker辅助器要钱玩吗,pokemmo脚本,普及教程(有挂辅助);大神普及一款德州a...
推荐一款!wepoker透视苹... 自定义wepoker透视苹果系统系统规律,只需要输入自己想要的开挂功能,一键便可以生成出微扑克专用辅...
实测揭晓!we-poker正规... 1、实测揭晓!we-poker正规吗,hhpoker德州透视,高科技教程(有挂透明)2、进入游戏-大...
记者揭秘!wepoker亲友圈... 1、记者揭秘!wepoker亲友圈有用吗,wepoker私人辅助器,存在挂教程(有挂技巧)2、进入游...