Android 片段-imageLoader中的列表视图错误

Android 片段-imageLoader中的列表视图错误,android,listview,android-fragments,fragment,android-volley,Android,Listview,Android Fragments,Fragment,Android Volley,我正在尝试将我的项目从活动更改为片段 我做了所有的改变,我需要使它工作,但它仍然不工作,因为应用程序正在运行 我编辑代码作为我在这里得到的帮助,但是,一旦片段启动,应用程序就会崩溃 我的新片段代码是: ` 公共类甜品展示扩展片段{ int counter = 0; // Log tag private static final String TAG = "lol"; // Movies json url private static final String url = "http://ap

我正在尝试将我的项目从活动更改为片段

我做了所有的改变,我需要使它工作,但它仍然不工作,因为应用程序正在运行 我编辑代码作为我在这里得到的帮助,但是,一旦片段启动,应用程序就会崩溃 我的新片段代码是:

`

公共类甜品展示扩展片段{

int counter = 0;

// Log tag
private static final String TAG = "lol";

// Movies json url
private static final String url = "http://api.androidhive.info/json/movies.json";
private ProgressDialog pDialog;
private List<Movie> movieList = new ArrayList<Movie>();
private ListView listView;
private CustomListAdapter adapter;

public DessertsShow(){}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {

    View rootView = inflater.inflate(R.layout.dessertshow, container, false);

    return rootView;
}




@Override
public void onActivityCreated(Bundle savedInstanceState)
{
    super.onActivityCreated(savedInstanceState);
    Log.d("fargment test", "1 ");
    listView =(ListView)getActivity().findViewById(R.id.list);
    Log.d("fargment test", "2 ");
    adapter = new CustomListAdapter(getActivity(), movieList);
    Log.d("fargment test", "3 ");
    listView.setAdapter(adapter);
    Log.d("fargment test", "4 ");
    listView.setOnScrollListener(new EndlessScrollListener() {
        @Override
        public void onLoadMore(int page, int totalItemsCount) {
            // TODO Auto-generated method stub
            // new Loadmore().execute();
            Log.d("fargment test", "5 ");
            loadList(counter);
        }
    });
    Log.d("fargment test", "6 ");
    loadList(counter);
}





public void loadList(int i)
{
    pDialog = new ProgressDialog(getActivity());
    // Showing progress dialog before making http request
    pDialog.setMessage("Loading...");
    pDialog.show();
    // changing action bar color
    getActivity().getActionBar().setBackgroundDrawable(
            new ColorDrawable(Color.parseColor("#1b1b1b")));
    // Creating volley request obj
    JsonArrayRequest movieReq = new JsonArrayRequest(url,
            new Response.Listener<JSONArray>() {
                @Override
                public void onResponse(JSONArray response) {
                    Log.d(TAG, response.toString());
                    hidePDialog();

                    int subcounter = counter +3;
                    // Parsing json
                    for (int i = counter; i < (subcounter); i++) {
                        try {

                            JSONObject obj = response.getJSONObject(i);
                            Movie movie = new Movie();
                            movie.setTitle(obj.getString("title"));
                            movie.setThumbnailUrl(obj.getString("image"));
                            movie.setRating(((Number) obj.get("rating"))
                                    .doubleValue());
                            movie.setYear(obj.getInt("releaseYear"));

                            // Genre is json array
                            JSONArray genreArry = obj.getJSONArray("genre");
                            ArrayList<String> genre = new ArrayList<String>();
                            for (int j = 0; j < genreArry.length(); j++) {
                                genre.add((String) genreArry.get(j));
                            }
                            movie.setGenre(genre);

                            // adding movie to movies array
                            movieList.add(movie);

                        } catch (JSONException e) {
                            e.printStackTrace();
                        }

                    }
                    counter = counter + 3 ;
                    // notifying list adapter about data changes
                    // so that it renders the list view with updated data
                    adapter.notifyDataSetChanged();
                }
            }, new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                    VolleyLog.d(TAG, "Error: " + error.getMessage());
                    hidePDialog();

                }
            });

    // Adding request to request queue
    AppController.getInstance().addToRequestQueue(movieReq);
}

@Override
public void onDestroy() {
    super.onDestroy();
    hidePDialog();
}

private void hidePDialog() {
    if (pDialog != null) {
        pDialog.dismiss();
        pDialog = null;
    }
}
int计数器=0;
//日志标签
私有静态最终字符串TAG=“lol”;
//电影json url
私有静态最终字符串url=”http://api.androidhive.info/json/movies.json";
私人对话;
private List movieList=new ArrayList();
私有列表视图列表视图;
专用自定义列表适配器;
公共甜点show(){}
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
视图根视图=充气机。充气(R.layout.dessertshow,container,false);
返回rootView;
}
@凌驾
已创建ActivityState上的公共无效(Bundle savedInstanceState)
{
super.onActivityCreated(savedInstanceState);
对数d(“碎片测试”,“1”);
listView=(listView)getActivity().findViewById(R.id.list);
对数d(“碎片试验”,“2”);
adapter=新的CustomListAdapter(getActivity(),movieList);
对数d(“碎片试验”,“3”);
setAdapter(适配器);
对数d(“碎片试验”,“4”);
setOnScrollListener(新的EndlessScrollListener(){
@凌驾
public void onLoadMore(整版页面,整版项目目录){
//TODO自动生成的方法存根
//新建Loadmore().execute();
对数d(“碎片试验”,“5”);
装载清单(计数器);
}
});
对数d(“碎片试验”,“6”);
装载清单(计数器);
}
公共无效加载列表(int i)
{
pDialog=newprogressdialog(getActivity());
//在发出http请求之前显示进度对话框
设置消息(“加载…”);
pDialog.show();
//更改操作栏颜色
getActivity().getActionBar().setBackgroundDrawable(
新的可着色(Color.parseColor(#1b1b1b”);
//创建截击请求对象
JsonArrayRequest movieReq=新的JsonArrayRequest(url,
新的Response.Listener(){
@凌驾
公共void onResponse(JSONArray响应){
Log.d(TAG,response.toString());
hidePDialog();
int子计数器=计数器+3;
//解析json
对于(int i=计数器;i<(子计数器);i++){
试一试{
JSONObject obj=response.getJSONObject(i);
电影=新电影();
movie.setTitle(obj.getString(“title”);
movie.setThumbnailUrl(obj.getString(“图像”));
movie.setRating(((编号)obj.get(“评级”))
.doubleValue());
电影。设置年(对象:getInt(“发布年”);
//类型是json数组
JSONArray genreArry=obj.getJSONArray(“流派”);
ArrayList流派=新的ArrayList();
对于(int j=0;j
}` 我想问题出在imageLoader上 这是我的CustomListAdapter类

public class CustomListAdapter extends BaseAdapter {
private Activity activity;
private LayoutInflater inflater;
private List<Movie> movieItems;
ImageLoader imageLoader = AppController.getInstance().getImageLoader();

public CustomListAdapter(Activity activity, List<Movie> movieItems) {
    this.activity = activity;
    this.movieItems = movieItems;
}

@Override
public int getCount() {
    return movieItems.size();
}

@Override
public Object getItem(int location) {
    return movieItems.get(location);
}

@Override
public long getItemId(int position) {
    return position;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {

    if (inflater == null)
        inflater = (LayoutInflater) activity
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    if (convertView == null)
        convertView = inflater.inflate(R.layout.list_row, null);

    if (imageLoader == null)
        imageLoader = AppController.getInstance().getImageLoader();
    NetworkImageView thumbNail = (NetworkImageView) convertView
            .findViewById(R.id.thumbnail);
    TextView title = (TextView) convertView.findViewById(R.id.title);
    TextView rating = (TextView) convertView.findViewById(R.id.rating);
    TextView genre = (TextView) convertView.findViewById(R.id.genre);
    TextView year = (TextView) convertView.findViewById(R.id.releaseYear);

    // getting movie data for the row
    Movie m = movieItems.get(position);

    // thumbnail image
    thumbNail.setImageUrl(m.getThumbnailUrl(), imageLoader);

    // title
    title.setText(m.getTitle());

    // rating
    rating.setText("Rating: " + String.valueOf(m.getRating()));

    // genre
    String genreStr = "";
    for (String str : m.getGenre()) {
        genreStr += str + ", ";
    }
    genreStr = genreStr.length() > 0 ? genreStr.substring(0,
            genreStr.length() - 2) : genreStr;
    genre.setText(genreStr);

    // release year
    year.setText(String.valueOf(m.getYear()));

    return convertView;
}
公共类CustomListAdapter扩展了BaseAdapter{
私人活动;
私人充气机;
私人电影项目清单;
ImageLoader ImageLoader=AppController.getInstance().getImageLoader();
公共CustomListAdapter(活动,列出电影项目){
这个。活动=活动;
this.movieItems=movieItems;
}
@凌驾
public int getCount(){
返回movieItems.size();
}
@凌驾
公共对象getItem(int位置){
返回电影项目。获取(位置);
}
@凌驾
公共长getItemId(int位置){
返回位置;
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
如果(充气器==null)
充气器=(充气器)活动
.getSystemService(上下文布局\充气机\服务);
if(convertView==null)
convertView=充气机。充气(R.layout.list_行,空);
如果(imageLoader==null)
imageLoader=AppController.getInstance().getImageLoader();
NetworkImageView缩略图=(NetworkImageView)convertView
.findviewbyd(R.id.thumboil);
TextView title=(TextView)convertView.findViewById(R.id.title);
TextView评级=(TextView)convertView.findViewById(R.id.rating);
TextView流派=(TextView)convertView.findViewById(R.id.genre);
TextView年份=(TextView)convertVi
public class AppController extends Application {

public static final String TAG = AppController.class.getSimpleName();

private RequestQueue mRequestQueue;
private ImageLoader mImageLoader;

private static AppController mInstance;

@Override
public void onCreate() {
    super.onCreate();
    mInstance = this;
}

public static synchronized AppController getInstance() {
    return mInstance;
}

public RequestQueue getRequestQueue() {
    if (mRequestQueue == null) {
        mRequestQueue = Volley.newRequestQueue(getApplicationContext());
    }

    return mRequestQueue;
}

public ImageLoader getImageLoader() {
    getRequestQueue();
    if (mImageLoader == null) {
        mImageLoader = new ImageLoader(this.mRequestQueue,
                new LruBitmapCache());
    }
    return this.mImageLoader;
}

public <T> void addToRequestQueue(Request<T> req, String tag) {
    // set the default tag if tag is empty
    req.setTag(TextUtils.isEmpty(tag) ? TAG : tag);
    getRequestQueue().add(req);
}

public <T> void addToRequestQueue(Request<T> req) {
    req.setTag(TAG);
    getRequestQueue().add(req);
}

public void cancelPendingRequests(Object tag) {
    if (mRequestQueue != null) {
        mRequestQueue.cancelAll(tag);
    }
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    Log.d("fargment test", "0 ");
    View rootView = inflater.inflate(R.layout.dessertshow, container, false);
    return rootView;
}
@Override
public void onActivityCreated(Bundle savedInstanceState)
{
    super.onActivityCreated(savedInstanceState);
    Log.d("fargment test", "1 ");
    listView =(ListView)getActivity().findViewById(R.id.list);
    Log.d("fargment test", "2 ");
    adapter = new CustomListAdapter(getActivity(), movieList);
    Log.d("fargment test", "3 ");
    listView.setAdapter(adapter);
    Log.d("fargment test", "4 ");
    listView.setOnScrollListener(new EndlessScrollListener() {
        @Override
        public void onLoadMore(int page, int totalItemsCount) {
            // TODO Auto-generated method stub
            // new Loadmore().execute();
            Log.d("fargment test", "5 ");
            loadList(counter);
        }
    });
    Log.d("fargment test", "6 ");
    loadList(counter);
}