Android “不推荐”的合适替代者是什么;managedQuery";?
Android文档说:这个方法在API级别11中被弃用 这是代码:Android “不推荐”的合适替代者是什么;managedQuery";?,android,android-contentprovider,Android,Android Contentprovider,Android文档说:这个方法在API级别11中被弃用 这是代码: class GridViewActivity_ extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.gridview); Gri
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);
}
}
如何替换此代码,而不是弃用的代码
对于活动,而不是片段…您可以看到以下链接:
根据这一伟大的理论:
公共类GridViewActivity扩展FragmentActivity实现LoaderManager.LoaderCallbacks
{
私人简易程序或适应程序;
@凌驾
公共加载器onCreateLoader(int p1,Bundle p2)
{
返回新的游标加载程序(这个,Contacts.CONTENT\u URI,null,null,Contacts.DISPLAY\u NAME);
}
@凌驾
公共void onLoadFinished(加载器p1,光标)
{
mAdapter.swapCursor(光标);
}
@凌驾
公共void onLoaderReset(加载器光标)
{
mAdapter.swapCursor(空);
}
@凌驾
创建时受保护的void(Bundle savedInstanceState)
{
//TODO:实现此方法
super.onCreate(savedInstanceState);
setContentView(R.layout.gridview);
GridView gv=(GridView)findViewById(R.id.GridView);
字符串[]cols=新字符串[]{Contacts.DISPLAY_NAME};
int[]views=newint[]{android.R.id.text1};
mAdapter=new SimpleCursorAdapter(这个,android.R.layout.simple\u list\u item\u 1,null,cols,views,0);
gv.设置适配器(mAdapter);
getSupportLoaderManager().initLoader(0,null,this);
}
}
光标加载器只是需要注意的一件事。这需要4个参数,managedQuery只需要3个。我忽略了其中一个空的!getSupportLoaderManager似乎也不推荐使用(IDE这么说)。怎么会?应该用什么来代替?
Cursor cursor = getContentResolver().query(contentUri, null, null, null, Contacts.DISPLAY_NAME);
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);
}
}