在我的应用程序中,最低SDK是API 9:Android 2.3(Gingerbread)。所有功能在虚拟设备(运行Android 6.0 Marshmallow)和真实设备(华为Y210与Android 2.3 Gingerbread)上都能正常工作。
问题是当我添加一个从SQLite数据库填充数据的自定义列表视图时,应用程序在真实设备上崩溃但在虚拟设备上运行正常。
我注意到我必须添加导入android.annotation.TargetApi 以清除SimpleCursorAdapter
以下是摘录
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
private void populateListVew(){
Cursor cursor = myDB.getAllMembers();
String[] dbValues = new String[] {DatabaseHelper.COL_1,DatabaseHelper.COL_2,DatabaseHelper.COL_3, DatabaseHelper.COL_4};
int[] viewIds = new int[] {R.id.memberId, R.id.membersName,R.id.nickName, R.id.mobileNumber};
SimpleCursorAdapter myCursorAdapter;
myCursorAdapter = new SimpleCursorAdapter(getBaseContext(),R.layout.member_listview, cursor,dbValues,viewIds,0);
allMembers.setAdapter(myCursorAdapter);
}
我已经经历过几个类似的问题,但似乎没有一个问题有TargetApi。
是否有更好的选择让Android 2.3也能正常运行?请建议我。