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() が呼び出されることがわかりました。

したがって、onProgressChanged() で myViews にアクセスするため、IndexOutOfBounds 例外が発生します。

次に、サイズが 0 より大きくなるまで myViews にアクセスしないように、onProgressChanged() コードに取り組みます。

:)

于 2012-12-17T20:55:13.657 に答える