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;
        }
    }
}

相关内容

热门资讯

aapoker辅助工具存在!w... aapoker辅助工具存在!wopoker系统套路,aapoker可以设置牌局,普及教程(有挂规律)...
德州之星外挂!德扑之星,wpk... 德州之星外挂!德扑之星,wpk外挂存在,教你攻略(有挂透明)1、很好的工具软件,可以解锁游戏的德州之...
wepokeai机器人!aap... 您好,wepokeai机器人这款游戏可以开挂的,确实是有挂的,需要了解加微【136704302】很多...
智星德州菠萝外挂!wpk长期盈... 智星德州菠萝外挂!wpk长期盈利打法教学,微扑克辅助挂,德州教程(有挂介绍),您好,智星德州菠萝外挂...
wpk辅助挂!wepoke真的... wpk辅助挂!wepoke真的有挂嘛,微扑克辅助器是骗人,2025新版教程(有挂教学)1、在wepo...
aapoker辅助!德州软件后... aapoker辅助!德州软件后台控制,德扑ai智能系统,系统教程(有挂技巧)是一款可以让一直输的玩家...
德扑之星有作弊!云扑克德州有挂... 德扑之星有作弊!云扑克德州有挂吗,微扑克使用方法,新版2025教程(有挂详情)1、金币登录送、破产送...
微扑克辅助器ios!wpk怎么... 微扑克辅助器ios!wpk怎么下载ios,微扑克可以用模拟器,透明教程(有挂攻略)您好,微扑克辅助器...
德州ai机器人!扑克时间假不假... 德州ai机器人!扑克时间假不假,线上德州辅助工具,线上教程(有挂攻略);人气非常高,ai更新快且高清...
德州微扑克辅助!来玩德州app... 德州微扑克辅助!来玩德州app有挂吗,wpk辅助透视,新2025教程(有挂辅助挂)1、许多玩家不知道...