我是android的新手.我想使用loaderCallbacks获取联系人数据
我写了一些代码,但这里有一些问题,我不知道为什么会这样
你能检查一下吗?
package com.example.arfan.myfirstapp;import androID.app.LoaderManager;import androID.content.CursorLoader;import androID.content.Loader;import androID.database.Cursor;import androID.net.Uri;import androID.os.Bundle;import androID.provIDer.ContactsContract;import androID.support.design.Widget.floatingActionbutton;import androID.support.design.Widget.Snackbar;import androID.support.v7.app.AppCompatActivity;import androID.support.v7.Widget.Toolbar;import androID.util.Log;import androID.vIEw.VIEw;import androID.vIEw.Menu;import androID.vIEw.MenuItem;public class MainActivity extends AppCompatActivity implements LoaderManager.LoaderCallbacks<Cursor> { @OverrIDe protected voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVIEw(R.layout.activity_main); getSupportLoaderManager().initLoader(1, null, this); // ERROR IS HERE in 3rd Argument Toolbar toolbar = (Toolbar) findVIEwByID(R.ID.toolbar); setSupportActionbar(toolbar); floatingActionbutton fab = (floatingActionbutton) findVIEwByID(R.ID.fab); fab.setonClickListener(new VIEw.OnClickListener() { @OverrIDe public voID onClick(VIEw vIEw) { Snackbar.make(vIEw, "Replace with your own action", Snackbar.LENGTH_LONG) .setAction("Action", null).show(); } }); } @OverrIDe public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.menu_main, menu); return true; } @OverrIDe public boolean onoptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroIDManifest.xml. int ID = item.getItemID(); //noinspection SimplifiableIfStatement if (ID == R.ID.action_settings) { return true; } return super.onoptionsItemSelected(item); } @OverrIDe public Loader<Cursor> onCreateLoader(int ID, Bundle args) { Uri CONTENT_URI = ContactsContract.CommonDataKinds.Phone.CONTENT_URI; return new CursorLoader(this, CONTENT_URI, null, null, null, null); } @OverrIDe public voID onl oadFinished(Loader<Cursor> loader, Cursor data) { Log.i("INFO","This is working"); while(data.movetoNext()){ Log.i("Cantacts : ",data.getString(data.getColumnIndex(ContactsContract.Contacts.disPLAY_name))); } } @OverrIDe public voID onl oaderreset(Loader<Cursor> loader) { }}
这个论点存在某种问题.如果我删除此行,则不会发生错误,也没有找到任何结果.我从这里读了这段代码
网站如何在AndroID中获取联系人数据你可以在这个网站就在这里
Go to Site
你能告诉我这是什么问题吗?我该如何解决?
谢谢.
更新:
控制台显示这个.
Error:(25, 34) error: method initLoader in class LoaderManager cannot be applIEd to given types;required: int,Bundle,LoaderCallbacks<D>found: int,<null>,MainActivityreason: cannot infer type-variable(s) D(argument mismatch; MainActivity cannot be converted to LoaderCallbacks<D>)where D is a type-variable:D extends Object declared in method <D>initLoader(int,Bundle,LoaderCallbacks<D>)
解决方法:
由于您正在使用AppCompatActivity并调用getSupportLoaderManager(),我想您也想使用Loader的支持库实现.
如果是,请更改以下import语句:
import androID.app.LoaderManager;import androID.content.CursorLoader;import androID.content.Loader;
对此:
import androID.support.v4.app.LoaderManager;import androID.support.v4.content.CursorLoader;import androID.support.v4.content.Loader;
如果不这样做,请调用getLoaderManager()而不是getSupportLoaderManager().
总结以上是内存溢出为你收集整理的在Activity Android中实现LoaderCallbacks全部内容,希望文章能够帮你解决在Activity Android中实现LoaderCallbacks所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)