2

アプリに問題があります。私は CursorAdapter と結合して CursorLoader を持っています。1 つの条件を除いて、すべてが期待どおりに機能します。ListView にいくつかのアイテムがあり、アダプタでカーソルを空のカーソルに交換すると、表示されているアイテムは削除されません (行間の仕切りのみが消えます)。ListView をタッチすると、すぐに消えます。

これが状況です。空でないカーソルがあります: ここに画像の説明を入力

次に、結果のないカーソルを交換します。 ここに画像の説明を入力

ご覧のとおり、仕切りだけが消えました。画面に触れると、両方のアイテムが消えます。

カーソルを交換する私の関数は次のとおりです。

public void onLoadFinished(Loader<Cursor> loader, Cursor cursor)
{
    ratesAdapter.swapCursor(cursor);
}

フラグメント ソース: http://pastebin.com/N2YGzgRj

この問題を解決するのを手伝ってください。

4

2 に答える 2

2

さて、問題をもう少し調査したところ、この問題は Android 4.0.x にのみ適用されることがわかりました。このバグは 2.2、2.3、4.1 には存在せず、4.0 のみに存在します。このバグを解決する唯一の方法は、onLoadFinished() に追加することです

getListView().setVisibility(View.GONE);
getListView().setVisibility(View.VISIBLE);

エレガントな方法だとは思いませんが、いくつかのアイデアがあるかもしれません。

于 2012-10-20T10:35:39.147 に答える
0

含まないnotifyDataSetChanged();ことが通常、これらのlistViewが更新されない問題の原因です。コードの読み込みがすべて終わった後、それを含めようとすると、より多くの情報が得られるまで'お勧めできます。

于 2012-10-18T21:14:10.463 に答える