相关疑难解决方法(0)

ExpandableListView的SimpleCursorTreeAdapter和CursorLoader

我试图通过使用异步查询提供CursorLoaderSimpleCursorTreeAdapter

这是我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

22
推荐指数
1
解决办法
2万
查看次数

使用SimpleCursorTreeAdapter保存和恢复ExpandableListActivity的折叠状态

在花了几天研究这个问题后,我终于放弃并发布了这个问题.这里已经回答了类似的问题(部分),并提出了解决方案,但最终没有人帮助我.与讨论的主题和我的问题的区别似乎是:其他人似乎没有使用SimpleCursorTreeAdapter来提供列表......

问题:更改设备(Samsung Galaxy S)的方向时,不会保留和恢复组的展开状态.所有组都显示为已关闭,列表将滚动到顶部.

Android API演示中已经出现此问题.如果您安装了它们,请导航至:

视图 - >可扩展列表 - > 2.光标(人物):启动示例,展开任何组,转动设备,结果显示处于折叠状态的组.

在下面的代码中,我做了以下操作:从API演示(ExpandableList2.java)中获取代码,并使用onSaveInstantState(),onRestoreInstanceState()和onResume()的实现扩展它.这些方法的实现取自另一个讨论线程(如何在ExpandableListView中保留滚动位置).

import android.app.ExpandableListActivity;
import android.content.AsyncQueryHandler;
import android.content.ContentUris; 
import android.content.Context;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.os.Parcelable;
import android.provider.ContactsContract.CommonDataKinds.Phone;
import android.provider.ContactsContract.Contacts;
import android.view.View;
import android.widget.CursorTreeAdapter;
import android.widget.ExpandableListView;
import android.widget.SimpleCursorTreeAdapter;

public class MainActivity extends ExpandableListActivity {

private static final String LIST_STATE_KEY = "levelSelectListState";
private static final String LIST_POSITION_KEY = "levelSelectListPosition";
private static final String ITEM_POSITION_KEY = "levelSelectItemPosition";

private static final String[] CONTACTS_PROJECTION = new …
Run Code Online (Sandbox Code Playgroud)

android expandablelistview parcelable

7
推荐指数
1
解决办法
1402
查看次数