Android: как использовать NumberPickerDialog

Может ли кто-нибудь привести пример того, как создать экземпляр NumberPickerDialog в Activity.onCreateDialog?(https://github.com/novak/numberpicker/blob/master/lib/src/com/michaelnovakjr/numberpicker/NumberPickerDialog.java)?

В репозитории под названием numberpicker-demo есть примеры для использования виджета, но нет для фактического диалога.

Среди других подходов, которые я пробовал, пробовал что-то вроде:

return new NumberPickerDialog.Builder(this)
    .setTitle("Choose Number")
    .etc..

Но это просто показывает стандартный AlertDialog без NumberPicker.

Спасибо!


person brk3    schedule 20.07.2011    source источник


Ответы (3)


В итоге заработало. В com.quietlycoding.android.picker.Picker есть пример, но я обнаружил, что в диалоговом окне неправильно устанавливается затемнение, затемняется вся активность в фоновом режиме, пока она находится в поле зрения.

Я обошел это, просто создав AlertDialog обычным способом, а затем просто вставив виджет NumberPicker в setView():

LayoutInflater inflater = (LayoutInflater)
    getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View npView = inflater.inflate(R.layout.number_picker_pref, null);
    return new AlertDialog.Builder(this)
        .setTitle("Text Size:")
        .setView(npView)
        .setPositiveButton(R.string.dialog_ok,
            new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int whichButton) {

                }
            })
            .setNegativeButton(R.string.dialog_cancel,
                new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int whichButton) {
                    }
                })
            .create();

Обязательно скопируйте number_picker_pref.xml из проекта numberpicker в res/layout вашего собственного проекта.

person brk3    schedule 20.07.2011

Посмотрите на это (и необязательно на это: Создание диалогов).

person aeracode    schedule 20.07.2011
comment
Я не думаю, что вы правильно прочитали мой вопрос. Я знаю о существовании диалога NumberPicker, а также о том, как создавать их диалоги в целом. Чего я не могу понять, так это того, как создать NumberPickerDialog с помощью библиотеки numberpicker. - person brk3; 20.07.2011
comment
Хм... Можно ли создать NumberPickerDialog с помощью библиотеки, но без вызова Activity.onCreateDialog? - person aeracode; 21.07.2011

Это должно быть намного проще, если вы сделаете только это:

  1. Добавьте NumberPicker в свой макет
  2. Добавьте этот код в свою активность

        //charger le NumberPicker
        npicker = (NumberPicker) findViewById(R.id.picker);
        // Set intervalle
        npicker.setRange(1, pages.size());
        // Set la valeur actuelle
        npicker.setCurrent(1);
    
        npicker.setOnChangeListener(new OnChangedListener() {               
            @Override
            public void onChanged(NumberPicker picker, int oldVal, int newVal) {
                // TODO Auto-generated method stub
                Log.e("Log Change event","oldVal: "+oldVal+"//newVal: "+newVal);
            }
        });
    
person Saber Chebka    schedule 08.12.2012
comment
Намного проще по сравнению с чем? Принятый ответ? Пожалуйста, укажите это в своем ответе. - person Lars Noschinski; 08.12.2012