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

相关内容

热门资讯

WPK多开绝活儿!wejoke... 您好,wejoker免费脚本这款游戏可以开挂的,确实是有挂的,需要了解加去威信【136704302】...
WPK德州局教材!wepoke... WPK德州局教材!wepoker有辅助功能吗,德州微扑克好像真的是有辅助软件所有人都在同一条线上,像...
WPK购买烘培!aapoker... WPK购买烘培!aapoker透视插件下载,德州微扑克确实存在有辅助软件1、任何aapoker透视插...
WPK安装阶段!wepoker... WPK安装阶段!wepoker透视脚本免费,德州微扑克本来是真的有辅助器软件1、金币登录送、破产送、...
WPK安装模板!wepoker... WPK安装模板!wepoker怎么看牌型,德州微扑克其实是真的有透视挂攻略进入游戏-大厅左侧-新手福...
WPK靠谱绝活!wepoker... WPK靠谱绝活!wepoker辅助透视软件,德州微扑克一贯有透视教程运wepoker辅助透视软件辅助...
WPK购买方针!hhpoker... WPK购买方针!hhpoker开辅助软件,德州微扑克真是是真的有辅助软件hhpoker开辅助软件透视...
WPK方法教材!wepoker... WPK方法教材!wepoker辅助器激活码,德州微扑克原来是有辅助方法wepoker辅助器激活码脚本...
WPK脚本指南!如何下载wep... WPK脚本指南!如何下载wepoker安装包,德州微扑克果然真的是有透视教程;1、在如何下载wepo...
WPK透视版诀窍!wpk辅助插... WPK透视版诀窍!wpk辅助插件叫什么,德州微扑克总是是真的有辅助插件wpk辅助插件叫什么是不是有人...