我试图通过使用异步查询提供CursorLoader了SimpleCursorTreeAdapter
这是我Fragment实现的类CursorLoader
public class GroupsListFragment extends ExpandableListFragment implements
LoaderManager.LoaderCallbacks<Cursor> {
private final String DEBUG_TAG = getClass().getSimpleName().toString();
private static final String[] CONTACTS_PROJECTION = new String[] {
ContactsContract.Contacts._ID,
ContactsContract.Contacts.DISPLAY_NAME };
private static final String[] GROUPS_SUMMARY_PROJECTION = new String[] {
ContactsContract.Groups.TITLE, ContactsContract.Groups._ID,
ContactsContract.Groups.SUMMARY_COUNT,
ContactsContract.Groups.ACCOUNT_NAME,
ContactsContract.Groups.ACCOUNT_TYPE,
ContactsContract.Groups.DATA_SET };
GroupsAdapter mAdapter;
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
populateContactList();
getLoaderManager().initLoader(-1, null, this);
}
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
// This is called when a new Loader needs …Run Code Online (Sandbox Code Playgroud) android expandablelistadapter simplecursoradapter android-cursorloader
我确信这有一个非常简单的答案,但我似乎无法找到它(不确定要搜索什么!).查询的标准计数/组可能如下所示:
SELECT COUNT(`t2`.`name`)
FROM `table_1` `t1`
LEFT JOIN `table_2` `t2` ON `t1`.`key_id` = `t2`.`key_id`
WHERE `t1`.`another_column` = 123
Run Code Online (Sandbox Code Playgroud)
这按预期工作,如果没有找到行则返回0.然而:
SELECT COUNT(`t2`.`name`)
FROM `table_1` `t1`
LEFT JOIN `table_2` `t2` ON `t1`.`key_id` = `t2`.`key_id`
WHERE `t1`.`another_column` = 123
GROUP BY `t1`.`any_col`
Run Code Online (Sandbox Code Playgroud)
仅当table_1中至少有一行时才有效,如果有零行则无法返回空结果集.我真的希望这回到0!有谁启发我这个?如果您在伦敦,可以提供啤酒;-)