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

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

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

瀏覽:231日期: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://www.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://www.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久久,三上悠亚国产精品一区二区三区
婷婷精品在线| 天堂va蜜桃一区二区三区| 精品国产精品久久一区免费式 | 日韩在线黄色| 99精品小视频| 国产欧美三级| 午夜久久一区| 国产精品亚洲产品| 99riav1国产精品视频| 美女av在线免费看| 国产欧美日韩精品一区二区三区| 视频一区国产视频| 视频二区不卡| 欧美天堂视频| 国产v日韩v欧美v| 成人国产综合| 成人台湾亚洲精品一区二区| 国产成人精品一区二区三区视频 | 国产欧美一区二区色老头| 日韩av一二三| 老牛国内精品亚洲成av人片| 麻豆免费精品视频| 97在线精品| 亚洲精品中文字幕乱码| 亚洲欧美久久| 欧美日一区二区三区在线观看国产免| 少妇精品久久久一区二区| 日韩av不卡在线观看| 日本va欧美va瓶| 日韩欧美综合| 91成人超碰| 日本va欧美va瓶| 国产精品任我爽爆在线播放| 91麻豆国产自产在线观看亚洲| 久久精品成人| 丝袜脚交一区二区| 日本中文字幕视频一区| 国产中文欧美日韩在线| 亚洲午夜电影| 日韩精品欧美精品| 中文另类视频| 欧美日韩一视频区二区| 日韩一区欧美| 欧美三级第一页| 日韩精品一卡| 综合激情网...| 国产精品成久久久久| 香蕉人人精品| 国产欧美日本| 亚洲a在线视频| 欧美日韩亚洲一区二区三区在线| 天堂中文av在线资源库| 国产精品日韩| 久久久人人人| 九九久久国产| 日韩国产欧美三级| 亚洲欧美日韩视频二区| 色婷婷久久久| 天堂√中文最新版在线| 久久av超碰| 国产亚洲一区| 国产一卡不卡| 久久国产欧美日韩精品| 欧美日韩精品一本二本三本| 亚洲黄色免费看| 国产成年精品| 国产成人精品三级高清久久91 | 国产精品久久久久久久久久久久久久久 | 国产黄大片在线观看| 国产+成+人+亚洲欧洲在线| 精品一区91| 成人国产精品久久| 国产欧美一区二区三区精品酒店| 免费在线观看一区| 日韩动漫一区| 91九色综合| 国产激情精品一区二区三区| 国产精品综合色区在线观看| 国产欧美另类| 麻豆国产91在线播放| 91亚洲自偷观看高清| 久久国产直播| 电影亚洲精品噜噜在线观看| 久久国产欧美| 蜜臀av一区二区在线免费观看| 成人av动漫在线观看| 在线观看一区| 国产精品1区在线| xxxxx性欧美特大| 不卡一区综合视频| 亚洲免费在线| 国产美女久久| 国产一区清纯| 国产欧美日韩在线观看视频| 欧美片第1页| 亚欧洲精品视频在线观看| 成人黄色av| 中文一区一区三区免费在线观| 国产精品天天看天天狠| 久久精品国产99久久| 日韩精品亚洲aⅴ在线影院| 日韩成人综合| 国产欧美高清视频在线| 99国产成+人+综合+亚洲欧美| 国产精品一区二区99| 伊人久久亚洲热| 成人亚洲欧美| 日韩成人av影视| 尤物精品在线| 国产精品二区影院| 国产亚洲毛片在线| 国产激情久久| 视频一区二区欧美| 国产精品蜜芽在线观看| 中文国产一区| 91精品日本| 中文字幕av亚洲精品一部二部| 久久久久久久久成人| 日韩中文字幕麻豆| 欧美国产另类| 国户精品久久久久久久久久久不卡| 精品国产亚洲一区二区三区在线 | 欧美日韩国产在线一区| 欧美激情福利| 在线免费观看亚洲| 麻豆国产在线| 国产精品久久久久久妇女| 国产亚洲一区在线| 亚洲成人精品| 日韩不卡一区二区三区| 蘑菇福利视频一区播放| 久久精品系列| 国产探花在线精品一区二区| 先锋影音国产一区| 尤物精品在线| 亚洲特色特黄| 极品日韩av| 欧洲一区二区三区精品| 麻豆精品视频在线观看免费| 清纯唯美亚洲综合一区| 日本v片在线高清不卡在线观看| 亚洲一区二区三区免费在线观看| 久久久水蜜桃av免费网站| 一区二区三区四区日本视频| 国精品产品一区| 97精品中文字幕| 免费在线欧美黄色| 国产福利91精品一区二区| 成人国产精品一区二区免费麻豆| 涩涩涩久久久成人精品| 国产麻豆精品久久| 国产精品xxxav免费视频| 国产高清日韩| 国产精品国产三级国产在线观看| 国产精品手机在线播放| 国产成人久久精品麻豆二区| 精品国产免费人成网站| 久久久久欧美精品| 久久av一区| 天使萌一区二区三区免费观看| 鲁大师成人一区二区三区| 国产精品毛片| 日韩一区二区三区四区五区| 亚洲人成网77777色在线播放| 国产日韩精品视频一区二区三区| 国产精品调教视频| 一本大道色婷婷在线| 婷婷激情综合| 成人在线视频免费看| 亚洲午夜一级| 视频一区中文字幕精品 | 欧美特黄视频| 国产精品www.| 一区免费视频| 麻豆久久一区| 在线亚洲激情| 国语精品一区| 亚洲制服欧美另类| 日韩深夜视频| 精品一区av| 伊人www22综合色| 欧美a一区二区| 中文久久精品| 欧美影院三区| 亚洲精品福利电影| 婷婷视频一区二区三区| 国产99久久| 国产第一亚洲| 日本午夜精品| 99国产精品久久久久久久| 久久精品免费看| 亚洲精品动态| 亚洲午夜电影| 国产精品任我爽爆在线播放| 日本综合精品一区| 在线亚洲国产精品网站| 日韩一区电影| 黑森林国产精品av| 精品国产鲁一鲁****| 久久国产三级|