日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Android 使用RecycleView列表實現加載更多的示例代碼

瀏覽:236日期:2022-09-18 18:52:25
1.界面布局

<?xml version='1.0' encoding='utf-8'?><FrameLayout xmlns:android='http://schemas.android.com/apk/res/android' xmlns:tools='http://schemas.android.com/tools' android:layout_width='match_parent' android:layout_height='match_parent' android:background='#f0f3f5' tools:context='.MainActivity'> <LinearLayoutandroid:layout_width='match_parent'android:layout_height='match_parent'android:orientation='vertical'tools:context='.MainActivity'><ImageView android:layout_width='match_parent' android:layout_height='wrap_content' android:src='http://m.b3g6.com/bcjs/@mipmap/logo'/><LinearLayout android:layout_width='match_parent' android:layout_height='wrap_content' android:layout_marginTop='10dp' android:orientation='vertical'> <LinearLayoutandroid:layout_width='match_parent'android:layout_height='wrap_content'android:orientation='horizontal'android:gravity='center'><TextView android:layout_width='0dp' android:layout_weight='1' android:layout_height='wrap_content' android:gravity='center' android:text='電影名'/><LinearLayout android:layout_width='0dp' android:layout_weight='1' android:gravity='center' android:layout_height='wrap_content' android:orientation='horizontal'> <TextViewandroid:layout_width='wrap_content'android:layout_height='match_parent'android:text='電影評分' /></LinearLayout><TextView android:layout_width='0dp' android:layout_weight='1' android:gravity='center' android:layout_height='wrap_content' android:text='電影圖片'/> </LinearLayout></LinearLayout><androidx.swiperefreshlayout.widget.SwipeRefreshLayout android:layout_height='wrap_content' android:layout_width='wrap_content' android:id='@+id/s1'> <androidx.recyclerview.widget.RecyclerViewandroid: android:layout_width='match_parent'android:layout_height='wrap_content' /></androidx.swiperefreshlayout.widget.SwipeRefreshLayout> </LinearLayout></FrameLayout>

列表布局list.xml

<?xml version='1.0' encoding='utf-8'?><LinearLayout xmlns:android='http://schemas.android.com/apk/res/android' android:orientation='horizontal' android:layout_width='match_parent' android:layout_height='160dp'> <TextViewandroid: android:layout_width='0dp'android:layout_weight='1.5'android:gravity='center'android:layout_height='wrap_content'android:layout_gravity='center'android:text='我不是藥神'/> <TextViewandroid: android:layout_width='0dp'android:layout_weight='1'android:layout_height='wrap_content'android:layout_gravity='center'android:gravity='center'android:text='9.0'/> <ImageViewandroid: android:layout_width='0dp'android:layout_weight='1.5'android:layout_height='150dp'android:padding='20dp'android:src='http://m.b3g6.com/bcjs/@mipmap/ic_launcher'/></LinearLayout>

加載更多布局foot_view.xml

<?xml version='1.0' encoding='utf-8'?><TextView xmlns:android='http://schemas.android.com/apk/res/android' xmlns:tools='http://schemas.android.com/tools' android: android:layout_width='match_parent' android:layout_height='wrap_content' android:padding='10dp' android:gravity='center' tools:text='下拉刷新' android:orientation='vertical'/>

Android 使用RecycleView列表實現加載更多的示例代碼

2.功能實現

(1)添加網絡權限

<uses-permission android:name='android.permission.INTERNET'/>

(2)添加使用到的第三方庫

implementation ’com.android.support:design:28.0.0’ implementation ’com.android.support:support-v4:28.0.0’ implementation ’com.android.support:appcompat-v7:28.0.0’ implementation ’com.squareup.okhttp3:okhttp:3.12.1’ debugImplementation ’com.squareup.okhttp3:logging-interceptor:3.12.1’ implementation ’com.google.code.gson:gson:2.8.5’ implementation ’com.github.bumptech.glide:glide:4.9.0’ annotationProcessor ’com.github.bumptech.glide:compiler:4.9.0’

(3)數據解析使用GsonFormat插件,快速將json字符串轉換成一個Java Bean,免去我們根據json字符串手寫對應Java Bean的過程。定義一個類OneModel.class

public class OneModel implements Serializable {}

使用快捷鍵(Alt+s)粘貼全部過去數據,之后一直點擊OK

Android 使用RecycleView列表實現加載更多的示例代碼

(4)綁定控件ID

private RecyclerView r1;private SwipeRefreshLayout s1;private LinearLayoutManager linearLayoutManager;private Adapter adapter;

Android 使用RecycleView列表實現加載更多的示例代碼

(5)定義一個Adapter類

package com.example.note4;import android.content.Context;import android.graphics.Color;import android.os.Handler;import android.util.Log;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.ImageView;import android.widget.TextView;import androidx.recyclerview.widget.RecyclerView;import com.bumptech.glide.Glide;import java.util.List;public class Adapter extends RecyclerView.Adapter<Adapter.ViewHolder> { private Context mContext; private List<DateModel.SubjectsBean> mData;//數據 private int max_count = 6;//最大顯示數 private Boolean isFootView = false;//是否添加了FootView private String footViewText = '';//FootView的內容 //兩個final int類型表示ViewType的兩種類型 private final int NORMAL_TYPE = 0; private final int FOOT_TYPE = 1111; public Adapter(Context context, List<DateModel.SubjectsBean> data) {this.mContext = context;this.mData = data; } public class ViewHolder extends RecyclerView.ViewHolder {public TextView t3,t2;public ImageView i1;private TextView tvFootView;//初始化viewHolder,此處綁定后在onBindViewHolder中可以直接使用public ViewHolder(View itemView, int viewType) { super(itemView); if (viewType == NORMAL_TYPE) {t3 = (TextView) itemView.findViewById(R.id.t3);t2 = (TextView) itemView.findViewById(R.id.t2);i1=(ImageView)itemView.findViewById(R.id.i1); } else if (viewType == FOOT_TYPE) {tvFootView = (TextView) itemView.findViewById(R.id.tv_foot); }} } @Override public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {View normal_views = LayoutInflater.from(parent.getContext()).inflate(R.layout.list, parent, false);View foot_view = LayoutInflater.from(parent.getContext()).inflate(R.layout.foot_view, parent, false);if (viewType == FOOT_TYPE) return new ViewHolder(foot_view, FOOT_TYPE);return new ViewHolder(normal_views, NORMAL_TYPE); } @Override public int getItemViewType(int position) {if (position == max_count - 1) { return FOOT_TYPE;}return NORMAL_TYPE; } @Override public void onBindViewHolder(ViewHolder holder, int position) {DateModel.SubjectsBean subjectsBean=mData.get(position);//如果footview存在,并且當前位置ViewType是FOOT_TYPEif (isFootView && (getItemViewType(position) == FOOT_TYPE)) { holder.tvFootView.setText(footViewText); // 刷新太快 所以使用Hanlder延遲兩秒 Handler handler = new Handler(); handler.postDelayed(new Runnable() {@Overridepublic void run() { max_count += 5; notifyDataSetChanged();} }, 1000);} else { holder.t2.setText(subjectsBean.getTitle()); holder.t3.setText(subjectsBean.getRate()); Glide.with(mContext).load(subjectsBean.getCover()).into(holder.i1);} } @Override public int getItemCount() {if (mData.size() <= max_count) { return mData.size();}return max_count; } //創建一個方法來設置footView中的文字 public void setFootViewText(String footViewText) {isFootView = true;this.footViewText = footViewText; }}

(6)網絡請求

public void getDate(DateModel dateModel) {if(dateModel==null||dateModel.getSubjects()==null){ Toast.makeText(MainActivity.this,'失敗',Toast.LENGTH_SHORT).show(); return;}Toast.makeText(MainActivity.this,'成功',Toast.LENGTH_SHORT).show();adapter=new Adapter(MainActivity.this,dateModel.getSubjects());adapter.setFootViewText('加載中...');r1.setAdapter(adapter);s1.setRefreshing(false); } public void requestDate() {String url = 'https://movie.douban.com/j/search_subjects?type=movie&tag=%E8%B1%86%E7%93%A3%E9%AB%98%E5%88%86&sort=recommend&page_limit=200&page_start=0';OkHttpClient okHttpClient = new OkHttpClient();final Request request = new Request.Builder().url(url).get().build();Call call = okHttpClient.newCall(request);call.enqueue(new Callback() { @Override public void onFailure(Call call, IOException e) {runOnUiThread(new Runnable() { @Override public void run() {Toast.makeText(MainActivity.this, '網絡連接失敗', Toast.LENGTH_SHORT).show(); }}); } @Override public void onResponse(Call call, Response response) throws IOException {String result = response.body().string();Gson gson = new Gson();final DateModel dateModel = gson.fromJson(result, DateModel.class);runOnUiThread(new Runnable() { @Override public void run() {Toast.makeText(MainActivity.this, '網絡連接成功', Toast.LENGTH_SHORT).show();getDate(dateModel); }}); }}); }

(7)功能實現

Android 使用RecycleView列表實現加載更多的示例代碼

linearLayoutManager=new LinearLayoutManager(MainActivity.this);linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);r1.setLayoutManager(linearLayoutManager);requestDate();s1.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() { @Override public void onRefresh() {new Handler().postDelayed(new Runnable() { @Override public void run() {requestDate(); }},1000); }});

(8)源代碼點擊下載

到此這篇關于Android 使用RecycleView列表實現加載更多的文章就介紹到這了,更多相關Android加載更多內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Android
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产欧美一区二区色老头| 国产精品久久久久av电视剧| 日韩精品免费一区二区三区| 香蕉成人久久| 免费一级欧美在线观看视频 | 欧美一区二区三区久久精品| 视频在线观看91| 国产麻豆久久| 欧美成人高清| 今天的高清视频免费播放成人| 日韩欧美看国产| 国产一卡不卡| 欧美日韩精品一本二本三本| 蜜臀av免费一区二区三区| 欧美91在线|欧美| 久久99性xxx老妇胖精品| 婷婷成人av| 亚洲1区在线观看| 亚洲高清影视| 日韩一级精品| 蜜桃久久av| 日韩三级精品| 亚洲va久久久噜噜噜久久| 日韩毛片在线| 日韩va亚洲va欧美va久久| 麻豆精品视频在线观看免费| 国产精品久久久久77777丨| 日韩av中文字幕一区二区三区| 国产精品传媒麻豆hd| 欧美精品影院| 一本一道久久a久久| 亚州av日韩av| 美女在线视频一区| 久久国内精品| 国产一区二区三区四区二区| 精品中文一区| 欧美日韩色图| 在线综合亚洲| 欧美一级鲁丝片| 91免费精品国偷自产在线在线| 欧美精品高清| 亚洲精品欧洲| 99免费精品| 美女国产一区| 7777精品| 国产日韩高清一区二区三区在线 | 久久久久久久久久久妇女| 亚洲女同一区| 欧美日韩一视频区二区| 色在线视频观看| 亚洲免费中文| 国产福利一区二区精品秒拍| 四虎影视精品| 亚洲精一区二区三区| 捆绑调教美女网站视频一区| 亚洲国内欧美| 国产精品羞羞答答在线观看| 国产高潮在线| 丝袜美腿亚洲色图| 国产在视频一区二区三区吞精| 日韩视频一区二区三区在线播放免费观看| 日本欧美大码aⅴ在线播放| 亚洲国产福利| 日韩精品视频一区二区三区| 日韩在线第七页| 91精品国产一区二区在线观看| 夜鲁夜鲁夜鲁视频在线播放| 日韩高清一级| 91成人网在线观看| 麻豆精品蜜桃视频网站| 亚洲中午字幕| 综合日韩av| 裤袜国产欧美精品一区| 免费成人网www| 国产精品www.| 日本不卡免费高清视频在线| 好吊一区二区三区| 日韩精品一区二区三区中文| 999国产精品999久久久久久| 亚洲精品国模| 久久久久.com| 首页国产欧美久久| 日本高清久久| 午夜影院欧美| 国产不卡精品在线| 日精品一区二区三区| 国精品一区二区三区| 国产乱码精品| 最新亚洲国产| 亚洲调教视频在线观看| 精品国产日韩欧美精品国产欧美日韩一区二区三区| 日韩在线卡一卡二| 免费国产自久久久久三四区久久 | 精品免费在线| 91精品视频一区二区| 亚洲欧美日本视频在线观看| 日韩国产欧美| 成人午夜在线| 国产黄色精品| 国产欧美成人| 亚洲tv在线| 久久xxxx| 黄色亚洲大片免费在线观看| 亚洲精品福利电影| 精品国产乱码久久久| 国产精品一区二区三区av麻| 日本不卡一区二区三区| 最新国产精品视频| 亚洲一级淫片| 视频一区免费在线观看| 欧美日韩国产探花| 在线精品视频在线观看高清| 午夜精品久久久久久久久久蜜桃| 另类欧美日韩国产在线| 国产精品啊v在线| 国产无遮挡裸体免费久久| 亚洲精品网址| 国产精品亚洲一区二区三区在线观看| 日韩欧美一区二区三区在线观看| 97精品国产99久久久久久免费| 首页亚洲欧美制服丝腿| 亚洲免费中文| 亚洲一区二区小说| 国产欧美日韩在线观看视频 | 综合一区在线| 亚洲va久久| 亚洲日本久久| 亚洲另类视频| 亚洲一区欧美激情| 亚洲少妇诱惑| 在线看片日韩| 午夜天堂精品久久久久| 日韩精品成人| 国产精品日韩精品中文字幕| 久久不见久久见免费视频7| 免费看久久久| 麻豆视频在线观看免费网站黄 | 久久av资源| 久久精品国产亚洲aⅴ| 精品精品99| 日韩中文字幕高清在线观看| 欧洲亚洲一区二区三区| 国模 一区 二区 三区| 亚洲一区二区毛片| 日韩有吗在线观看| 国产精品一区二区99| 精品免费在线| 婷婷激情久久| 蜜桃视频免费观看一区| 青青国产精品| 国产精品99在线观看| 欧美aa国产视频| 丝袜脚交一区二区| 欧美一区激情| 国产v日韩v欧美v| 日韩午夜高潮| 久久国产日韩欧美精品| 精品精品久久| 久久97久久97精品免视看秋霞| 日本在线啊啊| 亚洲精品少妇| www在线观看黄色| 欧美交a欧美精品喷水| 亚洲香蕉网站| 日韩国产一区二区三区| 国产欧美自拍| 天堂va欧美ⅴa亚洲va一国产| 日韩成人亚洲| 国产精品久久久久久久久免费高清| 视频精品一区| 精品国产午夜肉伦伦影院| 亚洲二区视频| 日本麻豆一区二区三区视频| 红杏一区二区三区| 夜久久久久久| 欧美久久久网站| 九九精品调教| 日韩中文字幕| 国产综合色区在线观看| 视频一区视频二区中文| 久久午夜影院| 99香蕉国产精品偷在线观看 | 国产毛片精品久久| 色偷偷偷在线视频播放| 综合亚洲色图| 日韩亚洲一区在线| 亚洲欧洲av| 日韩久久视频| 日本强好片久久久久久aaa| 日韩精品2区| 日韩国产精品久久久| 免费一二一二在线视频| 日韩和欧美一区二区三区| 色综合www| 日韩1区2区3区| 蜜桃精品在线| 国产精品视频一区视频二区| 99国产精品| 视频在线不卡免费观看| 亚洲毛片在线免费|