首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NumberPicker onValueChange未被调用

NumberPicker onValueChange未被调用
EN

Stack Overflow用户
提问于 2015-11-09 19:58:45
回答 1查看 397关注 0票数 2

你好,我在实现使用DialogFragmentNumberPicker时遇到了一些困难。我有一些代码,如果用户按下按钮,将提示用户通过AlertDialog选择一个数字。我能够显示Dialog,但是当我通过Picker选择一个数字时,我无法保存这个值。根据我的调试,似乎从未调用过onValueChange方法。知道为什么吗?下面是我的numberPicker DialogFragment代码

代码语言:javascript
复制
public static class numberPickerDialog extends DialogFragment
        implements NumberPicker.OnValueChangeListener {


    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState){

        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
        final NumberPicker picker = new NumberPicker(getActivity());
        picker.setMinValue(1);
        picker.setMaxValue(60);
        picker.setValue(25);
        picker.setWrapSelectorWheel(false);

        builder.setMessage("Set Study Time")
                .setPositiveButton("Set", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        //
                    }
                })
                .setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        //cancel
                    }
                });

        final FrameLayout parent = new FrameLayout(getActivity());
        parent.addView(picker, new FrameLayout.LayoutParams(
                FrameLayout.LayoutParams.WRAP_CONTENT,
                FrameLayout.LayoutParams.WRAP_CONTENT,
                Gravity.CENTER));
        builder.setView(parent);

        Dialog dialog = builder.create();
        return dialog;
    }

    @Override
    public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
        String toastMessage = "test";
        Toast toast = Toast.makeText(getActivity(), toastMessage, Toast.LENGTH_SHORT);
        toast.show();
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-09 20:12:24

您必须将OnValueChangeListener附加到NumberPicker。

你要做的就是:numberPicker.setOnValueChangedListener(this);

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33617234

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档