2014-09-30 3 views
8

Android Dokumentation sagte:Was der geeignete Ersetzer von "ManagedQuery"?

class GridViewActivity_ extends  Activity 
    { 
    @Override 
    protected void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
    setContentView(R.layout.gridview); 

    GridView gv = (GridView)findViewById(R.id.gridview); 

    Cursor c = managedQuery(Contacts.CONTENT_URI, 
      null, null, null, Contacts.DISPLAY_NAME); 

    String[] cols = new String[]{Contacts.DISPLAY_NAME}; 
    int[] views = new int[] {android.R.id.text1}; 

    SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, 
      android.R.layout.simple_list_item_1, 
      c, cols, views); 
    gv.setAdapter(adapter); 
} 
} 

Wie ersetzen diesen Code, nicht veraltet Code: Diese Methode in API-Ebene Dies ist Code 11.

veraltet ist?

Für Aktivität, nicht Fragment ...

+0

Cursor loader http: // Entwickler .android.com/reference/android/content/CursorLoader.html –

Antwort

2

Nach diesem großen tutorial:

public class GridViewActivity extends FragmentActivity implements LoaderManager.LoaderCallbacks<Cursor> 
{ 
    private SimpleCursorAdapter mAdapter; 

    @Override 
public Loader<Cursor> onCreateLoader(int p1, Bundle p2) 
{ 
    return new CursorLoader(this, Contacts.CONTENT_URI, null, null, null, Contacts.DISPLAY_NAME); 
} 

@Override 
public void onLoadFinished(Loader<Cursor> p1, Cursor cursor) 
{ 
    mAdapter.swapCursor(cursor); 
} 

@Override 
public void onLoaderReset(Loader<Cursor> cursor) 
{ 
    mAdapter.swapCursor(null); 
} 


@Override 
protected void onCreate(Bundle savedInstanceState) 
{ 
    // TODO: Implement this method 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.gridview);  
    GridView gv = (GridView)findViewById(R.id.gridview); 
    String[] cols = new String[]{Contacts.DISPLAY_NAME}; 
    int[] views = new int[]{android.R.id.text1}; 
    mAdapter = new SimpleCursorAdapter(this, android.R.layout.simple_list_item_1, null, cols,views, 0); 
    gv.setAdapter(mAdapter); 
    getSupportLoaderManager().initLoader(0, null, this); 
} 

} 
17

Sie diesen Link sehen: Deprecated ManagedQuery() issue

Cursor cursor = getContentResolver().query(contentUri, null, null, null, Contacts.DISPLAY_NAME); 
+1

Nur eine Sache zu beachten. Das erfordert 4 Parameter, managedQuery benötigt nur 3. Ich habe eines der Null ignoriert! –

+0

sollte die Antwort akzeptiert werden – androidXP