0

私はいくつかのデータを持っており、ボタンが押されたときにlistview2つのデータが変更されます。がクリックされたときにこれを取得するには、 の値を変更し、を呼び出します。これらはすべて正常に動作します。しかし、1 本の指でリストを移動してボタンをクリックすると、アプリがエラーでクラッシュします。データは UI スレッド自体から変更されます。これは、リストが移動中にボタンが押されたときに発生します。これを防ぐ方法はありますか?buttonslistviewbuttonarraylistnotifyDatasetChangedThe content of the adapter has changed but ListView did not receive a notification

このボタンクリックのコード。ここで arrlist は arraylist で、dailydata() は配列リストにデータを追加するために使用されます。

public void onClick(View v) {
arrlist.clear();
adapter.notifyDataSetChanged();
dailydata();
adapter.notifyDataSetChanged();

}

4

3 に答える 3

0

ListView変更中にデータを読み取っAdapterています。synchronized内部でブロックを使用Adapterして読み取りと編集を行います。これにより、呼び出されるListView前にデータを読み取ることができなくなります。notifyDatasetChanged()

于 2013-11-14T13:24:27.310 に答える
0

カスタム リスト ビューを作成している場合は、上下に移動するときに各行が動的に膨張することに注意する必要があります。getview メソッドを確認するか、ここに投稿してください。

于 2013-11-14T13:27:26.400 に答える
0

アダプターに通知する前にコンテンツを変更している可能性があります。または、ListView のスクロール中にボタンのクリックを無効にしてみてください。正確なエラーを見つけることができるように、コードを共有してください。

于 2013-11-14T13:20:54.637 に答える