2012-12-17 25 views
1

我在TableRow中做LayoutInflator。 (僅供參考)Android SeekBar setMax()和incrementProgressBy()不工作

在此我做到以下幾點:

((SeekBar)tr1.findViewById(R.id.seekBarMe)).setOnSeekBarChangeListener(this); 
((SeekBar)tr1.findViewById(R.id.seekBarMe)).setTag(i); 
((SeekBar)tr1.findViewById(R.id.seekBarMe)).setProgress(0); 

這些東西的工作和我的應用程序運行正常。但是,當我做到以下時,它似乎崩潰。

((SeekBar)tr1.findViewById(R.id.seekBarMe)).incrementProgressBy(1); 
((SeekBar)tr1.findViewById(R.id.seekBarMe)).setMax(10); 

然後,

ArrayList<View> myViews = new ArrayList<View>(); 
myViews.add(tr1); 

如果有誰知道是什麼問題,我會很感激你的幫助。 謝謝,

+0

你嘗試換電話致電SETMAX的順序首先,然後incementProgressBy? –

+2

什麼是崩潰?發佈logcat。更多的代碼也不會傷害,上下文總是很好。 – Geobits

+0

@Berťák,我做到了。沒有幫助。 –

回答

1

事實證明,SeekBar onProgressChanged()會在向myViews ArrayList添加任何內容之前被調用。

因此,它會給出IndexOutOfBounds異常,因爲您訪問onProgressChanged()中的myViews。

,現在你得在onProgressChanged()的代碼工作,所以它不會訪問myViews直到尺寸大於0

:)