2016-11-14 2 views
0

У меня есть следующий код в onCreate() активность:Как получить позицию прогресса SeekBar по умолчанию на деятельность создана

SeekBar vSeekbar = (SeekBar)findViewById(R.id.seekBar1); 
final TextView tvText = (TextView) findViewById(R.id.textView); 
//sets seekbar tab position from a randomly generated number... 
//when the acitivty is first created I would like the SeekBar position to be set in the `textView` 
tvText.setText(vSeekbar.getProgress()); //this is not showing anything... 

//the onchangelistener works correctly... 
vSeekbar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() 
{ 
    @Override 
    public void onStopTrackingTouch(SeekBar arg0) 
    { 
    } 

    @Override 
    public void onStartTrackingTouch(SeekBar arg0) 
    { 
    } 

    @Override 
    public void onProgressChanged(SeekBar arg0, int progress, boolean arg2) 
    { 
     tvText.setText(String.valueOf(progress)); //this works fine... 
    } 
}); 

seekBar1 позиция устанавливается на случайное число, когда представление не создается так никакого способа для меня знать заранее.

Как я могу получить позицию seekBar1 при создании представления и установить его в textView.

+0

использования seekbar.setProgress (5); а затем попытайтесь получить значение seekbar – Radhey

ответ

2

После того, как случайное значение задано для поиска в режиме поиска vSeekbar.getProgress(). перед тем, как вы позвонили, только вы получили нулевое значение.

vSeekbar.setProgress(randomValue()); 
tvText.setText(vSeekbar.getProgress()+""); 
+0

Это скорее всего вызовет «Ресурсы $ NotFoundException». –

+0

sry @MikeM Я не понимаю, можете ли вы четко сказать. –

+0

Перегрузка 'TextView # setText()', которая принимает аргумент 'int', предназначена для установки текста в строку ресурсов. Весьма маловероятно, что 'SeekBar # getProgress()' вернет действительный идентификатор String Resource, и в этом случае он выкинет это Exception. –

0

Лучшее ограничение ваших случайных значений на максимальное значение ProgressBar.

Например, если ваш максимальное значение 100, то можно использовать следующий код: vSeekbar.setProgress(randomValue() % 100);

Это будет ограничивать случайные значения от 0 до 99

Смежные вопросы