ListActivity中的getLoaderManager

Gau*_*wal 9 android listactivity android-loadermanager

我希望在ListActivity中实现Loader,但活动不识别getLoaderManager.

     @Override
     public void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);


    dbHelper =  new DBHelper(this,DBNAME,FindPackageName(), TABLE_NAME);

    sql = dbHelper.getReadableDataBase();
    //Log.d("Gaurav","Database Open");
    String[] from = new String[]{"word","_id","MyList"};
    int[] to = new int[]{R.id.listrow };

    simpleCursorLoader = new SimpleCursorLoader(this, TABLE_NAME, from, null, null, null, null, null, null, sql);



    //query result will be whole database
    //cursor = sql.query(TABLE_NAME, from, null, null, null, null, null);
    //startManagingCursor(cursor); //this method is deprecated
    //Log.d(TAG,"Cursor Set");



    completerOrMyListAdapter = new CompleteOrMyListAdapter(this,
            R.layout.completeormylist_adapter, cursor, from, to, dbHelper); 
    setListAdapter(completerOrMyListAdapter);  

    // Prepare the loader.  Either re-connect with an existing one,
    // or start a new one.
    LoaderManager lm = getLoaderManager();
    //if (lm.getLoader(0) != null) {
    //    lm.initLoader(0, null, this);
    //}
    //getLoaderManager().initLoader(0, null, this);
}
Run Code Online (Sandbox Code Playgroud)

Com*_*are 19

如果您的应用仅在API级别11或更高级别上运行,请相应地设置您的构建目标,并且该方法将可用.

但是,如果您使用Android兼容性库在API级别11之前支持加载器,则无法使用ListActivity.你必须继承FragmentActivity.要么使用a ListFragment,要么只使用ListView自己管理的平原.


小智 11

我想你可能会用下面的代替

getSupportLoaderManager().initLoader(0, null, this); 
Run Code Online (Sandbox Code Playgroud)

如果您使用支持v4包

  • ...而不是从Activity继承,而是从FragmentActivity继承. (4认同)