• <i id='dBNzd'><tr id='dBNzd'><dt id='dBNzd'><q id='dBNzd'><span id='dBNzd'><b id='dBNzd'><form id='dBNzd'><ins id='dBNzd'></ins><ul id='dBNzd'></ul><sub id='dBNzd'></sub></form><legend id='dBNzd'></legend><bdo id='dBNzd'><pre id='dBNzd'><center id='dBNzd'></center></pre></bdo></b><th id='dBNzd'></th></span></q></dt></tr></i><div id='dBNzd'><tfoot id='dBNzd'></tfoot><dl id='dBNzd'><fieldset id='dBNzd'></fieldset></dl></div>

      <legend id='dBNzd'><style id='dBNzd'><dir id='dBNzd'><q id='dBNzd'></q></dir></style></legend>
      <tfoot id='dBNzd'></tfoot>

      <small id='dBNzd'></small><noframes id='dBNzd'>

          <bdo id='dBNzd'></bdo><ul id='dBNzd'></ul>
      1. 优先创建 NumberPicker 对话框

        时间:2023-08-30

        <i id='AQ84B'><tr id='AQ84B'><dt id='AQ84B'><q id='AQ84B'><span id='AQ84B'><b id='AQ84B'><form id='AQ84B'><ins id='AQ84B'></ins><ul id='AQ84B'></ul><sub id='AQ84B'></sub></form><legend id='AQ84B'></legend><bdo id='AQ84B'><pre id='AQ84B'><center id='AQ84B'></center></pre></bdo></b><th id='AQ84B'></th></span></q></dt></tr></i><div id='AQ84B'><tfoot id='AQ84B'></tfoot><dl id='AQ84B'><fieldset id='AQ84B'></fieldset></dl></div>

          <small id='AQ84B'></small><noframes id='AQ84B'>

            <tbody id='AQ84B'></tbody>
            <bdo id='AQ84B'></bdo><ul id='AQ84B'></ul>

              • <tfoot id='AQ84B'></tfoot>
                1. <legend id='AQ84B'><style id='AQ84B'><dir id='AQ84B'><q id='AQ84B'></q></dir></style></legend>
                2. 本文介绍了优先创建 NumberPicker 对话框的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

                  问题描述

                  我正在尝试在我的首选项屏幕中创建一个 NumberPicker 对话框.我已经做了一个:

                  XML 文件:https://github.com/CyanogenMod/android_packages_apps_Trebuchet/blob/cm-10.2/res/layout/number_picker_dialog.xml

                  属性:https://github.com/CyanogenMod/android_packages_apps_Trebuchet/blob/cm-10.2/res/values/attrs.xml#L158

                  I am trying to create a NumberPicker dialog in my preference screen. I have already made one following this:https://stackoverflow.com/a/5533295/2442638

                  However, for my second dialog, I only want one spinner, so I have adapted the code as follows:

                  import android.content.Context;
                  import android.content.SharedPreferences;
                  import android.content.res.TypedArray;
                  import android.preference.DialogPreference;
                  import android.util.AttributeSet;
                  import android.view.View;
                  import android.widget.NumberPicker;
                  
                  public class SnoozeTPP extends DialogPreference { 
                  
                      private int Minute = 0;
                      private NumberPicker np= null;
                  
                      public static int getMinute(String time) {
                          String[] pieces = time.split(":");
                  
                          return (Integer.parseInt(pieces[1]));
                      }
                  
                      public SnoozeTPP(Context context, AttributeSet attrs) {
                          super(context, attrs);
                  
                          setPositiveButtonText("Set"); 
                          setNegativeButtonText("Cancel"); 
                      }
                  
                      @Override
                      protected View onCreateDialogView() {
                          np = new NumberPicker(getContext());
                  
                          return (np);
                      }
                  
                      @Override
                      protected void onBindDialogView(View v) {
                          super.onBindDialogView(v);
                  
                          np.setMaxValue(60);
                          np.setValue(Minute);
                      }
                  
                      @Override
                      protected void onDialogClosed(boolean positiveResult) {                                                             
                          super.onDialogClosed(positiveResult);
                  
                          if (positiveResult) {
                  
                              Minute = np.getValue();
                  
                              String time = 0 + ":" + String.valueOf(Minute);
                  
                              if (callChangeListener(time)) {
                                  persistString(time);
                              }
                          }
                      }
                  
                      @Override
                      protected Object onGetDefaultValue(TypedArray a, int index) {
                          return (a.getString(index));
                      }
                  
                      @Override
                      protected void onSetInitialValue(boolean restoreValue, Object defaultValue) {
                          String time = null;
                  
                          if (restoreValue) {
                              if (defaultValue == null) {
                                  time = getPersistedString("08:00");
                              } else {
                                  time = getPersistedString(defaultValue.toString());
                              }
                          } else {
                              time = defaultValue.toString();
                          }
                  
                          Minute = getMinute(time);
                      }
                  
                  }
                  

                  There are no errors and the dialog pops up correctly, but the layout of it seems to be "messed up" :-). The blue line stretch across the whole dialog instead of just the width of the numbers.

                  The question is - how to set the layout correctly? (I am sure there are lots of other mistakes as well!)

                  Thank you

                  解决方案

                  I solved this by using the CyanogenMod number picker. Java file:

                  https://github.com/CyanogenMod/android_packages_apps_Trebuchet/blob/cm-10.2/src/com/cyanogenmod/trebuchet/preference/NumberPickerPreference.java

                  XML file: https://github.com/CyanogenMod/android_packages_apps_Trebuchet/blob/cm-10.2/res/layout/number_picker_dialog.xml

                  Attributes: https://github.com/CyanogenMod/android_packages_apps_Trebuchet/blob/cm-10.2/res/values/attrs.xml#L158

                  这篇关于优先创建 NumberPicker 对话框的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!

                  上一篇:Android 自定义列表对话框 下一篇:在 5.0+ 上更改对话框文本颜色

                  相关文章

                  最新文章

                  <i id='I3w0f'><tr id='I3w0f'><dt id='I3w0f'><q id='I3w0f'><span id='I3w0f'><b id='I3w0f'><form id='I3w0f'><ins id='I3w0f'></ins><ul id='I3w0f'></ul><sub id='I3w0f'></sub></form><legend id='I3w0f'></legend><bdo id='I3w0f'><pre id='I3w0f'><center id='I3w0f'></center></pre></bdo></b><th id='I3w0f'></th></span></q></dt></tr></i><div id='I3w0f'><tfoot id='I3w0f'></tfoot><dl id='I3w0f'><fieldset id='I3w0f'></fieldset></dl></div>

                  1. <tfoot id='I3w0f'></tfoot>
                      <bdo id='I3w0f'></bdo><ul id='I3w0f'></ul>

                    1. <small id='I3w0f'></small><noframes id='I3w0f'>

                      <legend id='I3w0f'><style id='I3w0f'><dir id='I3w0f'><q id='I3w0f'></q></dir></style></legend>