Tôi đang cố chuyển đổi mã của mình bằng cách sử dụng con trỏ để sử dụng Trình tải con trỏ. Để hỗ trợ các phiên bản Android cũ hơn, tôi đã cài đặt Thư viện hỗ trợ và thay vì nhập android.content.CursorLoader, tôi đang nhập android.support.v4.content.CursorLoader. Bây giờ mã mà biên dịch tốt là ném hai lỗi. Lỗi đầu tiên là trên LoaderManager khi tôi thực hiện nó. Lỗi là: LoaderManager không thể được giải quyết thành một loại. Lỗi thứ hai là trên cuộc gọi đến initLoader. Lỗi này là: Phương thức initLoader (int, Bundle, LoaderManager.LoaderCallbacks) trong kiểu LoaderManager không áp dụng cho các đối số (int, Bundle, MyList). Dưới đây là mã của tôi:Lỗi khi tải Trình quản lý tải xuống khi sử dụng Thư viện hỗ trợ
public class MyList extends ListActivity implements LoaderManager.LoaderCallbacks<Cursor> {
private static final String[] PROJECTION = new String[] { "_id", "fieldname" };
private static final int LOADER_ID = 0;
private static final String MYTABLE_BASEPATH = "MyTable_tbl";
private static final String AUTHORITY = "SQLData";
public static final Uri MY_URI = Uri.parse("content://" + AUTHORITY + "/" + MYTABLE_BASEPATH);
private SimpleCursorAdapter mAdapter;
@SuppressWarnings("deprecation")
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent myData = getIntent();
Bundle info = myData.getExtras();
if (info != null){
Cursor c;
String[] dataColumns = { "fieldname" };
int[] viewIDs = { R.id.mylist1 };
SimpleCursorAdapter adapter;
adapter = new SimpleCursorAdapter(this, R.layout.mylist, null, dataColumns, viewIDs, CursorAdapter.FLAG_REGISTER_CONTENT_OBSERVER);
setListAdapter(adapter);
getLoaderManager().initLoader(0, info, this);
}
}
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
String selection = "level = '" + args.getString("Level") + "'";
return new CursorLoader(this, MY_URI,
PROJECTION, selection, null, null);
}
public void onLoadFinished(Loader<Cursor> loader, Cursor cursor) {
switch (loader.getId()) {
case LOADER_ID:
mAdapter.swapCursor(cursor);
break;
}
}
public void onLoaderReset(Loader<Cursor> loader) {
mAdapter.swapCursor(null);
}
}
tôi phần nào giải quyết điều này bằng cách nhập android.support.v4.app.LoaderManager. Nhưng tôi vẫn nhận được thông báo lỗi tương tự trong lời gọi initLoader. – Melanie