2

我在 TableRow 中执行 LayoutInflator。(供参考)

在此我执行以下操作:

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

如果有人知道问题出在哪里,我将非常感谢您的帮助。谢谢,

4

1 回答 1

1

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

因此,它给出了 IndexOutOfBounds 异常,因为您在 onProgressChanged() 中访问了 myViews。

现在您将处理 onProgressChanged() 代码,以便在大小大于 0 之前它不会访问 myViews。

:)

于 2012-12-17T20:55:13.657 回答