Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/203.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
Android 无限循环视图:仅加载一次数据_Android_Json_Android Recyclerview - Fatal编程技术网

Android 无限循环视图:仅加载一次数据

Android 无限循环视图:仅加载一次数据,android,json,android-recyclerview,Android,Json,Android Recyclerview,从早上开始搜索此错误,但没有任何结果。问题是我已经实现了无尽的recyclerview,它从网站的不同页面获取JSON数据,但这只适用于第二个页面之后的第二个页面,它不获取任何数据 请参阅onLoadMore函数: adapter.setLoadMore(new ILoadMore() { @Override public void loadMore() { if (p

从早上开始搜索此错误,但没有任何结果。问题是我已经实现了无尽的recyclerview,它从网站的不同页面获取JSON数据,但这只适用于第二个页面之后的第二个页面,它不获取任何数据

请参阅onLoadMore函数:

adapter.setLoadMore(new ILoadMore() {
                    @Override
                    public void loadMore() {
                        if (postItems.size() <= count) {
                            postItems.add(null);
                            adapter.notifyItemInserted(postItems.size() - 1);
                            new Handler().postDelayed(new Runnable() {
                                @Override
                                public void run() {
                                    postItems.remove(postItems.size() - 1);

                                    counter += 1;
                                    Log.d("HAHAHAHA", "onScrolled: End " + counter);
                                    if (counter <= pages) {
                                        Log.d("HAHAHAHA", "onScrolled: Counter: " + counter);
                                        getData(counter);
                                        //Toast.makeText(getContext(), "Loading More", Toast.LENGTH_SHORT).show();
                                    }
                                }
                            }, 2000);
                            adapter.setLoaded();
                        } else {
                            Toast.makeText(getContext(), "Done", Toast.LENGTH_SHORT).show();
                        }
                    }
                });

            } catch (JSONException e) {
                e.printStackTrace();
            }
adapter.setLoadMore(新的ILoadMore(){
@凌驾
public void loadMore(){

如果(
RecyclerView
)的(
OnScrollListener
在哪里),您设置了吗?在适配器中,请参阅适配器的构造函数。适配器.setLoadMore()方法仅从活动中调用一次数据加载完成后是否发送了
isLoading=false
?是的,我这样做了。
public AllAdapter(RecyclerView recyclerView, Activity activity, List<PostItem> postItemList, Controller controller) {
    this.activity = activity;
    this.postItemList = postItemList;
    this.controller = controller;

    final LinearLayoutManager manager = (LinearLayoutManager) recyclerView.getLayoutManager();

    recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
        @Override
        public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
            super.onScrolled(recyclerView, dx, dy);

            totalItemCount = manager.getItemCount();
            lastVisibleItem = manager.findLastVisibleItemPosition();

            if(!isLoading && totalItemCount <= (lastVisibleItem + visibleThreshold)) {
                Log.d("HAHAHAHA", "onScrolled: End");
                Log.d("HAHAHAHA", "onScrolled: End" + loadMore);
                if (loadMore != null)
                    Log.d("HAHAHAHA", "Inside if");
                    loadMore.loadMore();
                isLoading = true;
            }
        }
    });
}

@Override
public int getItemViewType(int position) {
    return postItemList.get(position) == null? VIEW_TYPE_LOAD: VIEW_TYPE_ITEM;

}

public void setLoadMore(ILoadMore loading) {
    Log.d("HAHAHAHA", "onScrolled: End Inside setLoadMore");
    this.loadMore = loading;
}

public void setLoaded() {
    Log.d("HAHAHAHA", "onScrolled: End" + "Inside SetLoaded");
    isLoading = false;
}

@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    if (viewType == VIEW_TYPE_ITEM) {
        return new ItemViewHolder(LayoutInflater.from(activity)
                .inflate(R.layout.allpost_item, parent, false));
    }
    else if (viewType == VIEW_TYPE_LOAD) {
        return new LoadingViewHolder(LayoutInflater.from(parent.getContext())
                .inflate(R.layout.progressbar, parent, false));

    }
    return null;
}

@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
    if (holder instanceof ItemViewHolder) {

        ItemViewHolder itemViewHolder = (ItemViewHolder) holder;
        Typeface face = Typeface.createFromAsset(activity.getAssets(), "googlesans.ttf");
        PostItem postItem = postItemList.get(position);
        itemViewHolder.all_title.setText(Html.fromHtml(postItem.getTitle().toString()));
        itemViewHolder.date.setText(Html.fromHtml(postItem.getDate().toString()));
        itemViewHolder.category.setText(Html.fromHtml(postItem.getCategory().toString()));

        itemViewHolder.all_title.setTypeface(face);
        Glide.with(activity).load(postItem.getThumbnail()).into(itemViewHolder.thumbnail);
    } else if (holder instanceof LoadingViewHolder) {
        LoadingViewHolder loadingViewHolder = (LoadingViewHolder) holder;
        loadingViewHolder.progressBar.setIndeterminate(true);
    }
}

@Override
public int getItemCount() {
    return postItemList.size();
}