2011-10-01 5 views
9

Desidero implementare un Loader per in un ListActivity ma l'attività non riconosce getLoaderManager.getLoaderManager in ListActivity

 @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); 
} 

risposta

19

Se la vostra applicazione sarà eseguito solo su livello API 11 o superiore, impostare il vostro target di compilazione in modo appropriato, e il metodo sarà disponibile.

Tuttavia, se si utilizza la libreria di compatibilità Android per supportare i caricatori prima del livello API 11, non è possibile utilizzare ListActivity. Devi ereditare da FragmentActivity. Utilizzare uno ListFragment o semplicemente un semplice ListView gestito autonomamente.

+0

ho cercato la risposta nel mio codice e funziona il modo suggerito nella risposta. –

+0

[Il sito web per sviluppatori Android] (http://developer.android.com/sdk/compatibility-library.html#Using) offre maggiori informazioni su come utilizzare il Support Package (precedentemente la Libreria di compatibilità) e alcuni modi in cui le sue librerie differiscono dalle nuove librerie che approssimate. È anche possibile controllare i collegamenti lì alla documentazione API per il pacchetto di supporto. – hotshot309

11

Penso che probabilmente utilizzate sotto invece

getSupportLoaderManager().initLoader(0, null, this); 

se si utilizza il pacchetto di supporto v4

+4

... e invece di ereditare da Activity, eredita invece da FragmentActivity. –