全部 文章 问答 分享 共找到26个相关内容
[文章] 阳光沙滩-商城上线
阳光沙滩-商城上线商城用来干嘛的呢?买东西呀!有什么好处?1、通过商城购买东西可以给我们带来佣金!2、可以帮助大家省钱(相对于在淘宝直接购买同一样东西)如何购买?
[问答] 商城接口无法 访问
商城的网络接口现在访问不了吗?我这边显示404了,换接口了吗,换的话麻烦哪位大哥可以发给我一下,,谢谢!
2020-08-22 18:10
·
接口问题
[问答] 商城二维码
现在在商城中把鼠标放到领券上不会出现二维码了吗?
2022-04-09 15:44
·
领券联盟
[文章] MVVM+Kotlin+组件化 开发的阳光沙滩APP
MVVM+Kotlin+组件化开发的阳光沙滩APP主要功能文章列表,详情摸鱼问答商城个人中心其中有些功能还在开发中...部分截图登录注册文章列表和详情摸鱼列表和详情问答列表和详情商城和个人中心感谢非常感谢
[问答] 听说大锯2022年要发福利了,是不是有点激动
方案一、通过应用商城去更新这个电商应用
方案二、应用内升级版本
2022-01-21 10:28
·
应用更新
[文章] 记录自己修补的第一个内存泄漏
getView());也不知道这样分析对不对,第一次上手,我再次把Profiler中的片段导出到MAT后,Homefragment减少到3个了,在配合ReycyclerView滑动的时候不加载图片,领券商城的内存峰值已经从
2020-06-22 21:30
·
内存泄漏
[问答] 关于商城app推荐界面与母婴界面获取不到数据问题
在as里面测试了多次,打了log发现两个界面的url都是没有问题的,id也没错,但是拿不到数据.于是我自己用postman又测试了一下两个界面的url,发现都是有数据的.(除了这两个界面外,其他界面都有数据).请问应如何解决?
推荐界面的url
retrofit
baseurl
homefragment
public class HomeFragment extends BaseFragment implements IHomeCallback { @BindView(R.id.home_indicator) public TabLayout mTabLayout; private HomePresenterImpl mHomePresenter; private CategoryPagePresenterimpl mCategoryPagePresenter; @BindView(R.id.home_pager) public ViewPager homepager; private HomepagerAdapter mAdapter; @Override protected int getRootViewResId() { return R.layout.fragment_home; } @Override protected void initview(View view) { mTabLayout.setupWithViewPager(homepager); //给viewpager设置适配器 mAdapter = new HomepagerAdapter(getChildFragmentManager()); homepager.setAdapter(mAdapter); } @Override protected void initPresenter() { mHomePresenter = new HomePresenterImpl(); mHomePresenter.registerViewCallback(this); } @Override protected View loadRootView(LayoutInflater inflater, ViewGroup container) { //复写掉basefragment里面的loadrootview方法 return inflater.inflate(R.layout.base_home_fragment_layout, container, false); } @Override protected void loadData() { mHomePresenter.getCategories();//数据从哪回来?要注册接口 } @Override public void onNetWorkError() { setUpState(State.ERROR); } @Override public void onLoading() { setUpState(State.LOADING); } @Override public void onEmpty() { setUpState(State.EMPTY); } @Override protected void release() { if (mHomePresenter != null) { mHomePresenter.unregisterViewCallback(this); } } @Override protected void onRetryClick() { //网络错误,点击了重试 //重新加载分类内容 if (mHomePresenter != null) { mHomePresenter.getCategories(); } } @Override public void onCategoriesLoaded(Categories category) { setUpState(State.SUCCESS); //加载的数据从这里回来 if (mAdapter != null) { mAdapter.setCategories(category); } } }
加载数据相关代码:
@Override protected void loadData() { Bundle arguments = getArguments(); Log.d(TAG,"arguments-----"+arguments); if (arguments!=null){ mTitle = arguments.getString(Constants.KEY_HOME_PAGER_TITLE); mId = arguments.getInt(Constants.KEY_HOME_PAGER_MATERIAL_ID); Log.d(TAG,"TITLE-------"+mTitle); Log.d(TAG,"id-------"+mId); } //todo:加载数据(通过presenter去加载数据) if (mCategoryPagerPresenter!=null){ Log.d(TAG,"load data----"); mCategoryPagerPresenter.getContentByCategoryId(mId); } if (currenttitle!=null){ currenttitle.setText(mTitle ); } }
2022-03-30 20:50
·
安卓
[问答] 阳光砂糖商城第二页的数据没了吗?
领券联盟根据id拿到商品数据的第二页为空
2020-10-29 16:24
·
数据为空
[问答] 关于商城app部分ui界面一直停留在加载中的问题
打了log发现推荐页面和母婴界面都是有数据的,但是ui一直显示加载中,其他界面则正常显示
CategoryPagerPresenterImpl代码(逻辑层)
public class CategoryPagePresenterimpl implements ICategoryPagerPresenter { private static final String TAG = "CategoryPagePresenterimpl"; private ICategoryPagerCallback mICategoryPagerCallback; private Map<Integer,Integer> pageInfo = new HashMap<>();//需要一个集合来管理每个页面的数据 public static final int DEFAULT_PAGE=1;//默认是第一页 public CategoryPagePresenterimpl(){ } private static ICategoryPagerPresenter sIntance=null; public static ICategoryPagerPresenter getIntance(){ if (sIntance==null){//创建单例 sIntance=new CategoryPagePresenterimpl(); } return sIntance; } @Override public void getContentByCategoryId(int CategoryId) { for (ICategoryPagerCallback callback : mCallbacks) { if (callback.getCategoryId()==CategoryId) { callback.onLoading(CategoryId); } } //根据id来加载内容 Retrofit retrofit = RetrofitManager.getInstance().getRetrofit(); Api api = retrofit.create(Api.class); Integer tagetPage = pageInfo.get(CategoryId); if (tagetPage==null){ tagetPage=DEFAULT_PAGE; pageInfo.put(CategoryId,tagetPage); } String homePagerUrl = UrlUtils.createHomePagerUrl(CategoryId, tagetPage); Call<HomePagerContent> task = api.getHomePageContent(homePagerUrl); task.enqueue(new Callback<HomePagerContent>() { @Override public void onResponse(Call<HomePagerContent> call, Response<HomePagerContent> response) { int code = response.code(); Log.d(TAG,"CODE----"+code); if (code== HttpURLConnection.HTTP_OK){ HomePagerContent pagerContent = response.body(); //把数据给到ui handleHomePageContentRes(pagerContent,CategoryId);//进行更新UI的操作 }else { //错误处理 handleNetWordError(CategoryId); } } private void handleHomePageContentRes(HomePagerContent pagerContent, int categoryId) { //通知UI层更新数据 List<HomePagerContent.DataDTO> data = pagerContent.getData(); for (ICategoryPagerCallback callback : mCallbacks) { if (callback.getCategoryId()==categoryId) { if (mCallbacks==null||mCallbacks.size()==0){ callback.onEmpty(categoryId); }else { List<HomePagerContent.DataDTO> looperData = data.subList(data.size() - 5, data.size()); callback.onLooperListLoaded(looperData,categoryId); callback.onContentLoaded(data,categoryId); } } } } @Override public void onFailure(Call<HomePagerContent> call, Throwable t) { Log.d(TAG,"onFailure"+t.toString()); } }); } private void handleNetWordError(int categoryId) { for (ICategoryPagerCallback callback : mCallbacks) { if (callback.getCategoryId()==categoryId) { callback.onError(categoryId); } } } @Override public void loaderMore(int CategoryId) { } @Override public void reload(int CategoryId) { } private List<ICategoryPagerCallback> mCallbacks = new ArrayList<>(); @Override public void registerViewCallback(ICategoryPagerCallback callback) { if (!mCallbacks.contains(callback)) { mCallbacks.add(callback); } } @Override public void unregisterViewCallback(ICategoryPagerCallback callback) { mCallbacks.remove(callback); } }
HomeFragment代码
public class HomeFragment extends BaseFragment implements IHomeCallback { @BindView(R.id.home_indicator) public TabLayout mTabLayout; private HomePresenterImpl mHomePresenter; private CategoryPagePresenterimpl mCategoryPagePresenter; @BindView(R.id.home_pager) public ViewPager homepager; private HomepagerAdapter mAdapter; @Override protected int getRootViewResId() { return R.layout.fragment_home; } @Override protected void initview(View view) { mTabLayout.setupWithViewPager(homepager); //给viewpager设置适配器 mAdapter = new HomepagerAdapter(getChildFragmentManager()); homepager.setAdapter(mAdapter); } @Override protected void initPresenter() { mHomePresenter = new HomePresenterImpl(); mHomePresenter.registerViewCallback(this); } @Override protected View loadRootView(LayoutInflater inflater, ViewGroup container) { //复写掉basefragment里面的loadrootview方法 return inflater.inflate(R.layout.base_home_fragment_layout, container, false); } @Override protected void loadData() { mHomePresenter.getCategories();//数据从哪回来?要注册接口 } @Override public void onNetWorkError() { setUpState(State.ERROR); } @Override public void onLoading() { setUpState(State.LOADING); } @Override public void onEmpty() { setUpState(State.EMPTY); } @Override protected void release() { if (mHomePresenter != null) { mHomePresenter.unregisterViewCallback(this); } } @Override protected void onRetryClick() { //网络错误,点击了重试 //重新加载分类内容 if (mHomePresenter != null) { mHomePresenter.getCategories(); } } @Override public void onCategoriesLoaded(Categories category) { setUpState(State.SUCCESS); //加载的数据从这里回来 if (mAdapter != null) { mAdapter.setCategories(category); } } }
HomePageFragment代码
public class HomePageFragment extends BaseFragment implements ICategoryPagerCallback { private static final String TAG = "HomePageFragment"; private ICategoryPagerPresenter mCategoryPagerPresenter; private String mTitle; private int mId; private HomePageContentAdapter mHomePageContentAdapter; private looperPagerAdapter mLooperPagerAdapter; public static HomePageFragment newInstance(Categories.DataBean category){ Log.d(TAG,"homepagerfragment-----"); HomePageFragment homePageFragment = new HomePageFragment(); Bundle bundle = new Bundle(); bundle.putString(Constants.KEY_HOME_PAGER_TITLE,category.getTitle()); Log.d(TAG,"title---"+category.getTitle()); bundle.putInt(Constants.KEY_HOME_PAGER_MATERIAL_ID,category.getId()); homePageFragment.setArguments(bundle);//设置数据 return homePageFragment; } @BindView(R.id.home_pager_content_list) public RecyclerView mContentList; @BindView(R.id.looper_pager) public ViewPager looperpager; @Override protected int getRootViewResId() { return R.layout.fragment_homepager; } @Override protected void initview(View view) { //设置布局管理器 setUpState(State.SUCCESS); mContentList.setLayoutManager(new LinearLayoutManager(getContext())); mContentList.addItemDecoration(new RecyclerView.ItemDecoration() { @Override public void getItemOffsets(@NonNull Rect outRect, @NonNull View view, @NonNull RecyclerView parent, @NonNull RecyclerView.State state) { outRect.top=5; outRect.bottom=5; } }); mHomePageContentAdapter = new HomePageContentAdapter(); //设置适配器 mContentList.setAdapter(mHomePageContentAdapter); //创建轮播图适配器 mLooperPagerAdapter = new looperPagerAdapter(); looperpager.setAdapter(mLooperPagerAdapter); } @Override protected void initPresenter() { //不同的分类需要拿到不同的对象,所以需要创建单例来节省资源 mCategoryPagerPresenter = CategoryPagePresenterimpl.getIntance(); mCategoryPagerPresenter.registerViewCallback(this);//注册接口 } @Override public void onContentLoaded(List<HomePagerContent.DataDTO> contents,int categoryId) { //TODO:更新UI setUpState(State.SUCCESS); mHomePageContentAdapter.setData(contents); } @Override public void onLoading(int categoryId) { setUpState(State.LOADING); } @Override public void onError(int categoryId) { setUpState(State.ERROR); } @Override public void onEmpty(int categoryId) { } @Override public int getCategoryId() { return mId; } @Override public void onLoaderMoreError(int categoryId) { } @Override public void onLoaderMoreEmpty(int categoryId) { } @Override public void onLoaderMoreSuccess(List<HomePagerContent.DataDTO> contents, int categoryId) { } @Override public void onLooperListLoaded(List<HomePagerContent.DataDTO> contents, int categoryId) { LogUtils.d(HomePageFragment.this,"looperlist----"+contents.size()); //在这里传入数据 mLooperPagerAdapter.setData(contents); } @Override protected void loadData() { Bundle arguments = getArguments(); Log.d(TAG,"arguments-----"+arguments); if (arguments!=null){ mTitle = arguments.getString(Constants.KEY_HOME_PAGER_TITLE); mId = arguments.getInt(Constants.KEY_HOME_PAGER_MATERIAL_ID); Log.d(TAG,"TITLE-------"+mTitle); } //todo:加载数据(通过presenter去加载数据) if (mCategoryPagerPresenter!=null){ Log.d(TAG,"load data----"); mCategoryPagerPresenter.getContentByCategoryId(mId); } } @Override protected void release() { if (mCategoryPagerPresenter != null) { mCategoryPagerPresenter.unregisterViewCallback(this); } } }
2022-03-29 21:44
·
安卓
[问答] docker-compse部署nginx后无法访问
80;
# 这个是门户的访问域名,指向http://xz-bolog-protal
server_name www.xuanzhi.cn;
# 商城暂时屏蔽
[文章] 【学习笔记】【领券联盟】前端(Nuxt.js)——8.渲染axios首页分类数据
margin-bottom:20px;}.recommend-category-boxul{list-style:none;}</style>需要注意大锯视频中的api是失效了的,原文:阳光沙滩商城的
[问答] 学习网络编程配置中Retrofit 解析请求到的数据 用到了RecyclerView,运行出现空指针异常
00:31.570+0000","userName":"程序员拉大锯","cover":"/imgs/7.png"},{"id":"1343753738156515333","title":"阳光沙滩商城的
2020-12-29 12:48
·
NullPointerException
[问答] 安卓网络编程,程序能够把从服务器请求到的数据打印到控制台上,但UI无法正常更新,JSON解析不为空,也没有报错
56:49.150+0000","userName":"程序员拉大锯","cover":"/imgs/7.png"},{"id":"1247508627950993413","title":"阳光沙滩商城的
- 1