如何在Android Studio中传递两个NumberPicker OnValueChange?

问题描述 投票:0回答:1

我试图制作一个两位数选择器(screenshot),左边是十进制,右边是逗号。尝试将coma值从numberPicker类传递给活动应用程序时,我陷入了困境。因为在我的Activity上实现的OnValueChange仅捕获一个值。而不是获得左选择器值和右选择器值,我只有一个值。

我的NumberPicker代码

    private NumberPicker.OnValueChangeListener numberChangeListener;
    private NumberPicker.OnValueChangeListener comaChangeListener;

        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
        builder.setTitle("Atur Durasi Pemberian Pakan");
        builder.setMessage("Pilih angka :");

        builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                numberChangeListener.onValueChange(numberPicker,
                        numberPicker.getValue(), numberPicker.getValue());
                comaChangeListener.onValueChange(comaPicker,
                        comaPicker.getValue(), comaPicker.getValue());
            }
        });
        builder.setView(linearLayout);

        return builder.create();
    }

    public NumberPicker.OnValueChangeListener getNumberChangeListener() {
        return numberChangeListener;
    }

    public void setValueChangeListener(NumberPicker.OnValueChangeListener numberChangeListener, NumberPicker.OnValueChangeListener comaChangeListener) {
        this.numberChangeListener = numberChangeListener;
        this.comaChangeListener = comaChangeListener;
    }

}

我的活动代码

   @Override
    public void onValueChange(NumberPicker numberPicker, int i, int i1) {
        DecimalFormat decimalFormat = new  DecimalFormat("#.##");
        dTime = numberPicker.getValue() + comaPicker.getValue() / 10;
        tVDurasi1.setText(dTime + " detik");
        dBerat = dTime * qBerat;
        eTBerat1.setText(decimalFormat.format(dBerat) + " g");

谢谢

java android android-studio kotlin
1个回答
0
投票

我终于找到了解决方案!本教程说明:https://codinginflow.com/tutorials/android/custom-dialog-interface

© www.soinside.com 2019 - 2024. All rights reserved.