Я пытаюсь реализовать SeekBar в простом приложении-фонарике (которое я изучаю) и не могу понять, почему приложение продолжает падать, когда я устанавливаю OnSeekBarChangeListener в свой SeekBar. Как только удаляется весь код внутри onStopTrackingTouch () для слушателя, приложение работает нормально. Но если в методах слушателя что-то есть, то происходит сбой. Я также использую кнопки и жесты в приложении, и у меня не было проблем с их использованием.
Я поднимаю отдельную раскладку, когда пользователь нажимает кнопку Меню | Опция яркости, которая отображает SeekBar (для регулировки яркости)
Вот как я реализую SeekBar:
SeekBar mSeekBar;
...
@Override
public void onCreate(Bundle savedInstanceState){
setContentView(R.layout.main);
...
mSeekBar = (SeekBar)findViewById(R.id.mSeekbar);
mSeekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
//first set the brightness mode to manual
Settings.System.putInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS_MODE, Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL);
//change the actual setting
WindowManager.LayoutParams lp = getWindow().getAttributes();
float brightness = Float.valueOf(seekBar.getProgress()); //change the brightness here
lp.screenBrightness = brightness;
getWindow().setAttributes(lp); //set the new brightness
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
}
@Override
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
// TODO Auto-generated method stub
}
});
Спасибо за ваше время и советы.
ОБНОВЛЕНИЕ: Вот ссылка на мою информацию Logcat http://pastie.org/2561098
ОБНОВЛЕНИЕ 2: Вот ссылка на мою версию журнала LogCat: http://pastie.org/2561111
РЕШИТЬ:
У меня был экземпляр mSeekBar и набор слушателей до того, как появился макет. SeekBar был нулевым, потому что отдельная раскладка, которую я сделал для регулировки яркости, в данный момент не видна. Помещение экземпляра и слушателя в оператор switch, который я использую для меню опций, после установки нового макета (для яркости) работает отлично.
Спасибо!