日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

android 加载更多,如何在android中实现加载更多的recyclerview

發(fā)布時(shí)間:2025/3/15 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android 加载更多,如何在android中实现加载更多的recyclerview 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

我想在Recyclerview中實(shí)現(xiàn)更多的加載.這是代碼.

代碼來自

github.

https://gist.github.com/ssinss/e06f12ef66c51252563e

MainActivity代碼:

package com.example.tatson.bila;

import android.app.ProgressDialog;

import android.os.AsyncTask;

import android.support.v4.widget.SwipeRefreshLayout;

import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

import android.support.v7.widget.LinearLayoutManager;

import android.support.v7.widget.RecyclerView;

import android.util.Log;

import android.view.View;

import android.widget.Button;

import android.widget.TextView;

import android.widget.Toast;

import com.android.volley.RequestQueue;

import com.android.volley.Response;

import com.android.volley.VolleyError;

import com.android.volley.toolbox.JsonArrayRequest;

import com.android.volley.toolbox.Volley;

import com.example.tatson.bila.CardAdapter;

import com.example.tatson.bila.Config;

import com.example.tatson.bila.SuperHeroes;

import org.json.JSONArray;

import org.json.JSONException;

import org.json.JSONObject;

import org.w3c.dom.Text;

import java.util.ArrayList;

import java.util.List;

public class MainActivity extends AppCompatActivity implements SwipeRefreshLayout.OnRefreshListener{

SwipeRefreshLayout swipeLayout;

LinearLayoutManager mLayoutManager;

// initially offset will be 0, later will be updated while parsing the json

private int offSet = 0;

private int previousTotal = 0;

int pastVisiblesItems, visibleItemCount, totalItemCount;

private boolean loading = true; // True if we are still waiting for the last set of data to load.

private int visibleThreshold = 5; // The minimum amount of items to have below your current scroll position before loading more.

int firstVisibleItem;

private int current_page = 1;

//Creating a List of superheroes

private List listSuperHeroes;

//Creating Views

private RecyclerView recyclerView;

private RecyclerView.LayoutManager layoutManager;

private RecyclerView.Adapter adapter;

public String Img;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

//Initializing Views

recyclerView = (RecyclerView) findViewById(R.id.recyclerView);

recyclerView.setHasFixedSize(true);

layoutManager = new LinearLayoutManager(this);

recyclerView.setLayoutManager(layoutManager);

LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);

//Initializing our superheroes list

listSuperHeroes = new ArrayList<>();

mLayoutManager = new LinearLayoutManager(this);

recyclerView.setLayoutManager(mLayoutManager);

swipeLayout = (SwipeRefreshLayout) findViewById(R.id.swipe_container);

swipeLayout.setOnRefreshListener(this);

swipeLayout.setColorSchemeResources(android.R.color.holo_blue_bright,

android.R.color.holo_green_light,

android.R.color.holo_orange_light,

android.R.color.holo_red_light);

swipeLayout.post(new Runnable() {

@Override

public void run() {

swipeLayout.setRefreshing(true);

getData();

}

}

);

recyclerView.addOnScrollListener(new EndlessRecyclerOnScrollListener(linearLayoutManager) {

@Override

public void onLoadMore(int current_page) {

Log.d("End","Sucess");

}

});

}

//This method will get data from the web api

private void getData(){

//Showing a progress dialog

// final ProgressDialog loading = ProgressDialog.show(this,"Loading Data", "Please wait...",false,false);

// appending offset to url

String url = Config.DATA_URL;

String url1 = url + offSet;

//Creating a json array request

JsonArrayRequest jsonArrayRequest = new JsonArrayRequest(url1,

new Response.Listener() {

@Override

public void onResponse(JSONArray response) {

//Dismissing progress dialog

// loading.dismiss();

//calling method to parse json array

parseData(response);

adapter.notifyDataSetChanged();

// stopping swipe refresh

swipeLayout.setRefreshing(false);

}

},

new Response.ErrorListener() {

@Override

public void onErrorResponse(VolleyError error) {

}

});

//Creating request queue

RequestQueue requestQueue = Volley.newRequestQueue(this);

//Adding request to the queue

requestQueue.add(jsonArrayRequest);

}

//This method will parse json data

private void parseData(JSONArray array){

for(int i = 0; i

SuperHeroes superHero = new SuperHeroes();

CardAdapter car = new CardAdapter();

JSONObject json = null;

try {

json = array.getJSONObject(i);

superHero.setImageUrl(json.getString(Config.TAG_IMAGE_URL));

Img =json.getString(Config.TAG_IMAGE_URL);

superHero.setName(json.getString(Config.TAG_NAME));

superHero.setRank(json.getInt(Config.TAG_RANK));

// superHero.setRealName(json.getString(Config.TAG_REAL_NAME));

//superHero.setCreatedBy(json.getString(Config.TAG_CREATED_BY));

//superHero.setFirstAppearance(json.getString(Config.TAG_FIRST_APPEARANCE));

int rank = json.getInt("pid");

// updating offset value to highest value

if (rank >= offSet)

offSet = rank;

// ArrayList powers = new ArrayList();

//JSONArray jsonArray = json.getJSONArray(Config.TAG_POWERS);

/* for(int j = 0; j

powers.add(((String) jsonArray.get(j))+"\n");

}*/

//superHero.setPowers(powers);

Log.d("test",Img);

car.setImageUrl(Img);

} catch (JSONException e) {

e.printStackTrace();

}

listSuperHeroes.add(superHero);

}

//Finally initializing our adapter

adapter = new CardAdapter(listSuperHeroes, this);

//Adding adapter to recyclerview

recyclerView.setAdapter(adapter);

}

@Override

public void onRefresh() {

listSuperHeroes.clear();

refreshItems();

}

void refreshItems() {

// Load items

getData();

// Load complete

onItemsLoadComplete();

}

void onItemsLoadComplete() {

// Update the adapter and notify data set changed

adapter.notifyDataSetChanged();

//Finally initializing our adapter

adapter = new CardAdapter(listSuperHeroes, this);

//Adding adapter to recyclerview

recyclerView.setAdapter(adapter);

// Stop refresh animation

}

}

EndlessRecyclerOnScrollListener類代碼:

package com.example.tatson.bila;

/**

* Created by Tatson on 23-11-2015.

*/

import android.support.v7.widget.LinearLayoutManager;

import android.support.v7.widget.RecyclerView;

import android.util.Log;

public abstract class EndlessRecyclerOnScrollListener extends RecyclerView.OnScrollListener {

public static String TAG = EndlessRecyclerOnScrollListener.class.getSimpleName();

private int previousTotal = 0; // The total number of items in the dataset after the last load

private boolean loading = true; // True if we are still waiting for the last set of data to load.

private int visibleThreshold = 5; // The minimum amount of items to have below your current scroll position before loading more.

int firstVisibleItem, visibleItemCount, totalItemCount;

private int current_page = 1;

private LinearLayoutManager mLinearLayoutManager;

public EndlessRecyclerOnScrollListener(LinearLayoutManager linearLayoutManager) {

this.mLinearLayoutManager = linearLayoutManager;

}

@Override

public void onScrolled(RecyclerView recyclerView, int dx, int dy) {

super.onScrolled(recyclerView, dx, dy);

visibleItemCount = recyclerView.getChildCount();

totalItemCount = mLinearLayoutManager.getItemCount();

firstVisibleItem = mLinearLayoutManager.findFirstVisibleItemPosition();

if (loading) {

if (totalItemCount > previousTotal) {

loading = false;

previousTotal = totalItemCount;

}

}

if (!loading ) {

// End has been reached

// Do something

current_page++;

Log.d("End", "Sucess");

onLoadMore(current_page);

loading = true;

}

}

public abstract void onLoadMore(int current_page);

}

謝謝.

總結(jié)

以上是生活随笔為你收集整理的android 加载更多,如何在android中实现加载更多的recyclerview的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美成一区二区三区 | 青青视频免费看 | 51成人网 | 黑人玩弄人妻一区二区绿帽子 | 怡红院一区二区 | 亚洲另类在线观看 | 性大片潘金莲裸体 | 小嫩女直喷白浆 | 中文字幕不卡av | 天天躁狠狠躁狠狠躁夜夜躁68 | 婷婷免费视频 | 兄弟兄弟全集免费观看 | 老熟妇毛片 | eeuss国产一区二区三区黑人 | 欧美一级视频 | 亚洲深爱 | 免费在线视频观看 | 欧洲成人免费视频 | 激情福利视频 | 亚洲观看黄色网 | 91日韩在线| 日本少妇一区二区 | 欧美变态绿帽cuckold | 荫道bbwbbb高潮潮喷 | 中国一极毛片 | 韩国福利一区 | 婷婷狠狠| 久啪视频 | 午夜伦伦电影理论片费看 | 丁香激情综合 | 国产一区二区中文字幕 | 小香蕉影院 | 特黄特色特刺激免费播放 | 肉体粗喘娇吟国产91 | 欧美激情精品久久久久久蜜臀 | 天堂欧美城网站网址 | 91精品人妻一区二区三区蜜桃欧美 | 色av一区 | 男女午夜视频在线观看 | 视频丨9l丨白浆 | 亚洲成a人v欧美综合天堂麻豆 | 一区二区亚洲精品 | 久久久久一 | 国产高清免费观看 | 国产熟女一区二区三区四区 | 国产在线麻豆精品观看 | 开心激情五月网 | 成人午夜福利视频 | 美女黄视频网站 | 日韩免费视频 | 国产欧美精品一区二区色综合朱莉 | 国产精品日韩一区 | 国产精品一区二区久久毛片 | 国产av不卡一区 | 欧美日韩亚洲二区 | 伊人操| 秋霞欧美视频 | 亚洲成人午夜影院 | 成人午夜影片 | 久久久久久夜 | 国产精品亚洲色图 | 性的免费视频 | 高清国产一区二区三区 | 欧美性一区 | 国产精品观看 | 日韩va| 高清国产在线观看 | 欧美性猛交富婆 | 黄色动漫免费在线观看 | 国产主播精品在线 | 久久国产主播 | 日日夜夜操视频 | 午夜毛片在线观看 | 亚洲一区中文 | 亚洲欧洲日本国产 | 免费福利在线 | 成人网站在线进入爽爽爽 | 9色视频在线观看 | 国产91清纯白嫩初高中在线观看 | 日韩精品在线免费视频 | 国产高清成人 | 综合网亚洲 | 欧美日韩亚洲天堂 | 亚洲精品日韩在线观看 | 亚色成人| 精品视频网站 | 男人和女人搞鸡 | 午夜视频在线播放 | 精品一区二区中文字幕 | 一本色道无码道dvd在线观看 | 亚洲第一综合网 | 日日日人人人 | 久久福利国产 | 又紧又大又爽精品一区二区 | 日本电影成人 | 亚洲天堂成人在线 | 九一亚色 | 国产做爰xxxⅹ性视频国 | 99国产精品欲 |