2012-01-04 15 views
1

誰かがこのクラスを使用して、アンドロイドバージョン3.x以上で壊れているかどうかを確認していますか?以前のバージョンではうまくいきました。ここに例があります:バージョン3.xでAndroid MergeCursorが壊れていますか?

public void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
MatrixCursor cursorOne = new MatrixCursor(new String[]{ "_id", "name", "description" }); 

cursorOne.addRow(new Object[]{ 5, "Object 2", "Description 2" }); 
cursorOne.addRow(new Object[]{ 5, "Object 3", "Description 3" }); 
cursorOne.addRow(new Object[]{ 5, "Object 4", "Description 4" }); 
cursorOne.addRow(new Object[]{ 5, "Object 5", "Description 5" }); 

CursorAdapter cursorAdapter = new SimpleCursorAdapter(this, android.R.layout.simple_list_item_2, cursorOne, new String[] { "name", "description" }, new int []{ android.R.id.text1, android.R.id.text2 }); 

MatrixCursor cursorTwo = new MatrixCursor(new String[]{ "_id", "name", "description" }); 

cursorTwo.addRow(new Object[]{ 5, "Object 2", "Description 2" }); 
cursorTwo.addRow(new Object[]{ 5, "Object 3", "Description 3" }); 
cursorTwo.addRow(new Object[]{ 5, "Object 4", "Description 4" }); 
cursorTwo.addRow(new Object[]{ 5, "Object 5", "Description 5" }); 

MergeCursor mergeCursor = new MergeCursor(new Cursor[] { cursorOne, cursorTwo }); 

cursorAdapter.changeCursor(mergeCursor); 

setListAdapter(cursorAdapter); 
} 

これは、カーソルをクリーニングしているようです。 SDK> 3.xで何か不足していますか?

答えて

0

さて、私は解決策を見つけた:

私は互換パッケージにもののため CursorAdapterSimpleCursorAdapter輸入を交換し CursorAdapter.swapCursorの代わり CursorAdapter.changeCursorを使用しました。

swapCursorは、前のカーソルを閉じることができないことに関連しているようです。

関連する問題