【问题标题】:NumberPicker is not showing in AlertDialogNumberPicker 未显示在 AlertDialog 中
【发布时间】:2012-12-15 01:06:17
【问题描述】:

我正在尝试将 NumberPicker 添加到 AlertDialog,但即使似乎没有错误,它也不会出现。我是 Android 编码的新手,所以我认为那里缺少一些非常愚蠢的东西。

        AlertDialog.Builder alert = new AlertDialog.Builder(MainActivity.this);

        alert.setTitle("Select the value: ");

        NumberPicker np = new NumberPicker(MainActivity.this);
        String[] nums = new String[100];
        for(int i=0; i<nums.length; i++)
               nums[i] = Integer.toString(i);

        np.setMinValue(1);
        np.setMaxValue(nums.length-1);
        np.setWrapSelectorWheel(false);
        np.setDisplayedValues(nums);
        np.setValue(50);

        alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int whichButton) {
          // Do something with value!
          }
        });

        alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
          public void onClick(DialogInterface dialog, int whichButton) {
            // Cancel.
          }
        });

        alert.show();

【问题讨论】:

  • 另外,要获得选择的号码,您需要将NumberPicker np 声明为final,以便您可以从onClick() 方法中访问它,或者添加一个NumberPicker.OnValueChangeListener 侦听器到np
  • 谢谢!对于将来,我想添加“确定”按钮来获取选择的数字和日期并将其保存到 SQL 数据库。从 NumberPicker 获取它的最简单方法是什么?
  • 在创建时声明final NumberPicker np,然后在onClick() 中表示“OK”,使用int value = np.getValue() 来获取选择的号码。
  • 再次感谢您! :)
  • +1,我遇到了类似的问题,但是您似乎希望您的初始值从零开始,np.setMinValue(0); 而不是np.setMinValue(1);,否则当您np.getValue() 时它会关闭一个

标签: android user-interface components android-alertdialog numberpicker


【解决方案1】:

添加alert.setView(np); 您必须告诉警报对话框设置新视图。

【讨论】:

    猜你喜欢
    • 2017-03-02
    • 1970-01-01
    • 2021-12-17
    • 1970-01-01
    • 1970-01-01
    • 2014-02-24
    • 2015-08-09
    • 2017-02-16
    • 1970-01-01
    相关资源
    最近更新 更多