Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 片段类中的加载程序上下文_Java_Android_Android Fragments_Android Context - Fatal编程技术网

Java 片段类中的加载程序上下文

Java 片段类中的加载程序上下文,java,android,android-fragments,android-context,Java,Android,Android Fragments,Android Context,我试图将上下文传递到自定义加载程序中,但类型不匹配。在onCreateLoader中返回新的新闻加载器(上下文、url)我尝试使用getActivity()和getContext()和getApplicationContext()方法作为输入 错误 getContext()“必需的android.support.v4.loader我通过将LoaderManager的导入库从android.support.v4.app.LoaderManager更改为android.app.LoaderManag

我试图将上下文传递到自定义加载程序中,但类型不匹配。在
onCreateLoader
中返回新的新闻加载器(上下文、url)
我尝试使用
getActivity()
getContext()
getApplicationContext()
方法作为输入

错误


getContext()
“必需的android.support.v4.loader
我通过将LoaderManager的导入库从
android.support.v4.app.LoaderManager
更改为
android.app.LoaderManager
,并确保实现的回调与该库匹配来修复此问题。然后我就能够使用
getContext()
我的
新闻加载器中的方法
参数没有问题

`package com.example.android.greennewswire;

import android.content.Context;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.LoaderManager;
import android.support.v4.content.Loader;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import java.util.ArrayList;


public class NewsFragmentBBC extends Fragment implements LoaderManager.LoaderCallbacks<ArrayList<News>>{

    //String object holding the network request URL to be passed into the Loader
    private static final String NEWS_REQUEST_URL = "https://www.googleapis.com/books/v1/volumes?q=android";

    public NewsFragmentBBC() {
        // Required empty public constructor
    }

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.list, container, false);

        //Create a LoaderManager and initialise the Loader
        LoaderManager loaderManager = getLoaderManager();
        loaderManager.initLoader(1, null, this);




        return rootView;
    }

    @Override
    public Loader<ArrayList<News>> onCreateLoader(int id, Bundle args) {
        return new NewsLoader(this, NEWS_REQUEST_URL);
    }

    @Override
    public void onLoadFinished(Loader<ArrayList<News>> loader, ArrayList<News> data) {

    }

    @Override
    public void onLoaderReset(Loader<ArrayList<News>> loader) {

        }
  }
package com.example.android.greennewswire;

import android.content.AsyncTaskLoader;
import android.content.Context;

import java.util.ArrayList;



public class NewsLoader extends AsyncTaskLoader<ArrayList<News>> {

    private String mUrl;

    //Default constructor to take input objects
    public NewsLoader (Context context, String url) {
        super(context);
        mUrl = url;
    }

    @Override
    protected void onStartLoading() {
        forceLoad();
    }

    @Override
    public ArrayList<News> loadInBackground() {
        //Null check
        if (mUrl == null) {
            return null;
        }
        ArrayList<News> news = QueryUtils.fetchNewsData(mUrl);
        return news;
    }
}