2

用語を入力すると、結果のリスト(ListView)が表示され、リストにラベルを付けるヘッダーが付いた検索アプリを作成しています。別の検索を実行して、別の結果セットを取得できます。または、結果の1つを選択すると、その選択の詳細のリストビューを含む別のアクティビティに移動します。これはすべて正常に機能します。

しかし、詳細アクティビティから検索アクティビティに戻って別の検索用語を入力すると、次のエラーが発生します。

Cannot add header view to list -- setAdapter has already been called.

私のアクティビティクラスは両方とも次のような行があります

adapter.setAdapter(results);

そして私の理解では、それは許可されていません。これを修正するための私のアプローチは、詳細アクティビティのonDestroy()で問題のあるデータ(ビュー?リスト?アダプター?)を削除/クリアすることです。しかし、それを実行する方法がわかりません。それが正しい解決策であるかどうかもわかりません。

4

1 に答える 1

2

例外が明確に述べているように、既にアダプタを設定していてListView、ヘッダービューをに追加しようとしていListViewます。

私が理解しているように、ヘッダービューを追加する必要があるのは一度だけですが、検索結果ごとにヘッダービューによって表示されるテキスト/データのみを変更します(アダプターのデータを変更することにより)。それに応じてコードをリフレームできます。

于 2012-07-12T16:44:31.880 に答える