【问题标题】:Display a NumberPicker on an AlertDialog在 AlertDialog 上显示 NumberPicker
【发布时间】:2017-03-02 22:22:37
【问题描述】:

我正在尝试在 AlertDialog 上显示 NumberPicker。
AlertDialog 有效,但不显示 NumberPicker。

这是我的代码

public Dialog onCreateDialog(Bundle savedInstanceState){
    final NumberPicker numberPicker = new NumberPicker(getActivity());
    numberPicker.setMaxValue(360);
    numberPicker.setMinValue(0);


    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
    builder.setTitle("Changing the Hue");
    builder.setMessage("Choose a value :");
    builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {

        @Override
        public void onClick(DialogInterface dialog, int which) {
            dialogHost.onPositiveButton(numberPicker.getValue());
        }
    });
    builder.setNegativeButton("CANCEL", new DialogInterface.OnClickListener(){

        @Override
        public void onClick(DialogInterface dialog, int which) {
            dialogHost.onCancelButton();
        }
    });
    return builder.create();
}

【问题讨论】:

    标签: android android-alertdialog numberpicker


    【解决方案1】:

    您从未设置对话框的视图。

    builder.setView(numberPicker);
    

    【讨论】:

      【解决方案2】:

      您需要包括 2 行:

      1. builder.setView(numberPicker);
      2. return build.show()

      所以,代码一定是这样的:

      public Dialog onCreateDialog(Bundle savedInstanceState)
      {
          final NumberPicker numberPicker = new NumberPicker(getActivity());
          numberPicker.setMaxValue(360);
          numberPicker.setMinValue(0);
      
      
          AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
          builder.setView(numberPicker);    
          builder.setTitle("Changing the Hue");
          builder.setMessage("Choose a value :");
          builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
      
          @Override
          public void onClick(DialogInterface dialog, int which) 
          {
              dialogHost.onPositiveButton(numberPicker.getValue());
          }
          });
          builder.setNegativeButton("CANCEL", new DialogInterface.OnClickListener()
      {
          @Override
          public void onClick(DialogInterface dialog, int which) 
          {
              dialogHost.onCancelButton();
          }
          });
         builder.create();
         return builder.show();
      }
      

      【讨论】:

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