团队博客-第二阶段冲刺-Day5
团队博客-第二阶段冲刺-Day5
团队任务
完成图片转表格app(TransformMine)的开发
1.统一,简约,漂亮的前端界面
2.完成用户主要功能的开发
3.优化用户体验
4.定时团队任务进行团队任务完成情况的审查
今日完成任务
1.测试百度的接口是否能够正常调用
2.调整主页面的布局
今日团队任务关键代码:
package com.transform.transformMine.adapter.base.broccoli; import android.view.View; import androidx.annotation.NonNull; import com.xuexiang.xui.adapter.recyclerview.BaseRecyclerAdapter; import com.xuexiang.xui.adapter.recyclerview.RecyclerViewHolder; import com.xuexiang.xui.adapter.recyclerview.XRecyclerAdapter; import java.util.Collection; import java.util.HashMap; import java.util.Map; import me.samlss.broccoli.Broccoli; public abstract class BroccoliRecyclerAdapter<T> extends BaseRecyclerAdapter<T> { /** * 是否已经加载成功 */ private boolean mHasLoad = false; private Map<View, Broccoli> mBroccoliMap = new HashMap<>(); public BroccoliRecyclerAdapter(Collection<T> collection) { super(collection); } @Override protected void bindData(@NonNull RecyclerViewHolder holder, int position, T item) { Broccoli broccoli = mBroccoliMap.get(holder.itemView); if (broccoli == null) { broccoli = new Broccoli(); mBroccoliMap.put(holder.itemView, broccoli); } if (mHasLoad) { broccoli.removeAllPlaceholders(); onBindData(holder, item, position); } else { onBindBroccoli(holder, broccoli); broccoli.show(); } } /** * 绑定控件 * * @param holder * @param model * @param position */ protected abstract void onBindData(RecyclerViewHolder holder, T model, int position); /** * 绑定占位控件 * * @param broccoli */ protected abstract void onBindBroccoli(RecyclerViewHolder holder, Broccoli broccoli); @Override public XRecyclerAdapter refresh(Collection<T> collection) { mHasLoad = true; return super.refresh(collection); } /** * 资源释放,防止内存泄漏 */ public void recycle() { for (Broccoli broccoli : mBroccoliMap.values()) { broccoli.removeAllPlaceholders(); } mBroccoliMap.clear(); clear(); } }
package com.transform.transformMine.adapter.base.delegate; import android.view.ViewGroup; import androidx.annotation.NonNull; import com.xuexiang.xui.adapter.recyclerview.RecyclerViewHolder; import java.util.Collection; public abstract class BaseDelegateAdapter<T> extends XDelegateAdapter<T, RecyclerViewHolder> { public BaseDelegateAdapter() { super(); } public BaseDelegateAdapter(Collection<T> list) { super(list); } public BaseDelegateAdapter(T[] data) { super(data); } /** * 适配的布局 * * @param viewType * @return */ protected abstract int getItemLayoutId(int viewType); @NonNull @Override protected RecyclerViewHolder getViewHolder(@NonNull ViewGroup parent, int viewType) { return new RecyclerViewHolder(inflateView(parent, getItemLayoutId(viewType))); } }
作者:冰稀饭Aurora
出处:https://www.cnblogs.com/rsy-bxf150/p/17419317.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端