SeekBar на Mono для Android

Я хотел бы создать панель поиска для приложения Mono для Android, которое позволяет пользователю выбирать, и я хочу реализовать виджет SeekBar, как я могу использовать SeekBarChangeListener() в Mono для Android?


person arkmetal    schedule 14.12.2011    source источник


Ответы (2)


Чтобы написать прослушиватель изменений, вам нужен класс, реализующий SeekBar.IOnSeekBarChangeListener:

public class SeekBarListener : Java.Lang.Object, SeekBar.IOnSeekBarChangeListener
{
    public void OnProgressChanged(SeekBar seekBar, int progress, bool fromUser)
    {
    }

    public void OnStartTrackingTouch(SeekBar seekBar)
    {
    }

    public void OnStopTrackingTouch(SeekBar seekBar)
    {
    }
}

Затем вы можете назначить это панели поиска:

seekBar.SetOnSeekBarChangeListener(new SeekBarListener());
person Greg Shackles    schedule 16.12.2011
comment
спасибо, но это выдает мне ошибку, когда я хочу сделать это txtCache.SetText(progress,Button.BufferType.Normal); наследовать от другого действия, потому что я создаю эту панель поиска в диалоговом окне. - person arkmetal; 17.12.2011

Ну, я разрешаю это в том же классе, реализующем SeekBar.IOnSeekBarChangeListener по-другому, вот мой код:

private void CreateDialogSeek()
    {

        dialogSeek = new Dialog(this);
        dialogSeek.SetContentView(Resource.Layout.seekbar_dialog);
        dialogSeek.SetTitle("Change your configuration"); 
        dialogSeek.SetCancelable(true);
          //Ok
          btnOk = (Button)(dialogSeek.FindViewById(Resource.Id.btnSettingsOKSeekBar));
          btnCancel = (Button)(dialogSeek.FindViewById(Resource.Id.btnSettingsCancelSeekBar));
          SeekBar mSeekBar = (SeekBar)(dialogSeek.FindViewById(Resource.Id.seekbar));
          mSeekBar.Progress = cache;
          mSeekBar.SetOnSeekBarChangeListener(this);

        dialogSeek.Show();
        btnOk.Click += delegate {OKSeek();};
        btnCancel.Click += delegate {dialogSeek.Dismiss();;};
    }

    public void OnProgressChanged(SeekBar seekBar, int progress, bool fromUser)
    {
        cache = progress;
    }

    public void OnStartTrackingTouch(SeekBar seekBar)
    {
    }

    public void OnStopTrackingTouch(SeekBar seekBar)
    {
    }
person arkmetal    schedule 20.12.2011
comment
и в методе OKSeek() я могу поместить этот код, который выдавал мне ошибку.... txtCache.SetText(cache.ToString(), Button.BufferType.Normal); - person arkmetal; 20.12.2011