Android SeekBar setMax()和incrementProgressBy()不起作用

时间:2012-12-17 19:31:22

标签: android increment seekbar

我在TableRow中执行LayoutInflator。 (FYI)

在此我做了以下几点:

((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);

如果有人知道问题是什么,我真的很感谢你的帮助。 谢谢,

1 个答案:

答案 0 :(得分:1)

事实证明,在向myViews ArrayList添加任何内容之前,会调用SeekBar onProgressChanged()。

因此,它会给出一个IndexOutOfBounds异常,因为你在onProgressChanged()中访问myViews。

现在你将处理onProgressChanged()代码,这样它就不会访问myViews,直到大小大于0。

:)