Java 如何引用实现接口的活动?
第三个参数是错误的,我在mainActivity中实现了LoaderManager.LoaderCallbacksJava 如何引用实现接口的活动?,java,android,Java,Android,第三个参数是错误的,我在mainActivity中实现了LoaderManager.LoaderCallbacks getSupportLoaderManager().initLoader(LOADER_ID,getUrlBundle(),this); 为什么会这样 public class MainActivity extends AppCompatActivity implements MovieAdapter.movieAdapterClickHandler,LoaderMana
getSupportLoaderManager().initLoader(LOADER_ID,getUrlBundle(),this);
为什么会这样
public class MainActivity extends AppCompatActivity implements MovieAdapter.movieAdapterClickHandler,LoaderManager.LoaderCallbacks<List<Movie>> {
...
@Override
protected void onCreate(Bundle savedInstanceState) {
...
getSupportLoaderManager().initLoader(LOADER_ID,getUrlBundle(),this);
}
...
@Override
public Loader<List<Movie>> onCreateLoader(int i, final Bundle bundle) {
return new AsyncTaskLoader<List<Movie>>(this) {
@Override
protected void onStartLoading() {
if(bundle==null)
return;
progressBar.setVisibility(View.VISIBLE);
errorMessage.setVisibility(View.INVISIBLE);
forceLoad();
}
@Override
public List<Movie> loadInBackground() {
/* Extract the url from the args using our constant */
String UrlString = bundle.getString(URL_EXTRA);
/* If the user didn't enter anything, there's nothing to search for */
if (UrlString == null || TextUtils.isEmpty(UrlString)) {
return null;
}
return QueryUtils.fetchMovieData(UrlString);
}
@Override
public void deliverResult(List<Movie> data) {
super.deliverResult(data);
}
};
}
@Override
public void onLoadFinished(Loader<List<Movie>> loader, List<Movie> movies) {
if (movies != null && !movies.isEmpty()) {
movieAdapter.MovieAdapterUpdate(movies);
progressBar.setVisibility(View.INVISIBLE);
} else {
progressBar.setVisibility(View.INVISIBLE);
errorMessage.setText("No data returned");
errorMessage.setVisibility(View.VISIBLE);
}
}
@Override
public void onLoaderReset(Loader<List<Movie>> loader) {
}
}
如果您对正在使用的加载程序类使用了错误的导入,则可能会发生这种情况。例如,如果您正在使用
import android.support.v4.content.AsyncTaskLoader;
import android.support.v4.content.Loader;
import android.support.v7.app.AppCompatActivity;
连同
import android.app.LoaderManager;
当您混合支持依赖项和非支持依赖项时,您将得到错误的第三个参数警告。鉴于这将起作用:
import android.support.v4.app.LoaderManager;
从
您需要传递加载程序回调尝试getSupportLoaderManager.initLoaderLOADER_ID、getUrlBundle、MainActivity.this;这似乎是因为进口
initLoader(int id, Bundle args, LoaderCallbacks<D> callback)