团队博客-第二阶段冲刺-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))); } }