全部 文章 问答 分享 共找到26个相关内容
[文章] 阳光沙滩-商城上线
阳光沙滩-商城上线商城用来干嘛的呢?买东西呀!有什么好处?1、通过商城购买东西可以给我们带来佣金!2、可以帮助大家省钱(相对于在淘宝直接购买同一样东西)如何购买?
2019-10-19 21:30 · 程序员 / 日常 / 商城
[问答] 商城接口无法 访问
商城的网络接口现在访问不了吗?我这边显示404了,换接口了吗,换的话麻烦哪位大哥可以发给我一下,,谢谢!
2020-08-22 18:10 · 接口问题
[问答] 商城二维码

现在在商城中把鼠标放到领券上不会出现二维码了吗?

2022-04-09 15:44 · 领券联盟
[文章] 2024商城接口文档
商城HOST:https://api.sunofbeach.netactivity-controllergetActivity接口地址:/shop/act请求方式:GET请求数据类型:application
2024-03-18 10:16 · japi / 商城 / api / 接口 / 后端 / 阳光沙滩
[文章] 阳光沙滩商城的API文档
阳光沙滩商城的API文档baseUrl:https://api.sunofbeach.net/shop数据格式:json发现获取发现页的分类方法:get参数:无接口:/discovery/categories
2019-12-02 18:03 · 接口 / API / 文档 / 商城 / 后台
[问答] 2020/5/7更新说明以及问题反馈
事务是发展的,一开始我只是想做一个小网站,可以发帖子交流-->加了一个商城--->要把商城的API给大家学习--->....原来的架构,已经满足不了后面的扩展了,只能改。
2020-05-07 16:54 · 测试 / 版本 / 阳光沙滩 / bugs / 找虫
[文章] MVVM+Kotlin+组件化 开发的阳光沙滩APP
MVVM+Kotlin+组件化开发的阳光沙滩APP主要功能文章列表,详情摸鱼问答商城个人中心其中有些功能还在开发中...部分截图登录注册文章列表和详情摸鱼列表和详情问答列表和详情商城和个人中心感谢非常感谢
2022-05-18 11:07 · android / 组件化
[问答] 听说大锯2022年要发福利了,是不是有点激动

方案一、通过应用商城去更新这个电商应用

方案二、应用内升级版本

2022-01-21 10:28 · 应用更新
[文章] android开发网络框架OkHttp
加载图片(一般来说,图片地址以内容的形式返回到手机端,然后再通过图片地址进行加载到控件中)上传文件/数据(头像的上传,采集数据的上传,甚至是录像之类的大文件上传)使用api文档这里我们使用到的api文档是商城
[文章] 记录自己修补的第一个内存泄漏
getView());也不知道这样分析对不对,第一次上手,我再次把Profiler中的片段导出到MAT后,Homefragment减少到3个了,在配合ReycyclerView滑动的时候不加载图片,领券商城的内存峰值已经从
2020-06-22 21:30 · 内存泄漏
[文章] 阳光沙滩要拆分了:单点登陆的思路
阳光沙滩模块我们目前的板块有:博客(笔记)问答(学习讨论)学院(视频,笔记,学习接口)摸鱼(日常分享)商城(购物,领券,服务器优惠)阳光沙滩将会拆分为:-领券商城(www.taobaounion.cn)
2024-02-17 23:42 · 单点登录 / SSO / 多网站登录 / 阳光沙滩 / 登录
[问答] 关于商城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 · 安卓
[文章] 喜马拉雅课程网络访问604引发的知识点
onemorething领券联盟的baseUrl换了,换在这个:https://api.sunofbeach.net/shop详情请查看:阳光沙滩商城的API文档
2020-05-13 22:38 · 喜马拉雅 / 604 / http / 明文 / 安卓开发
[问答] 阳光砂糖商城第二页的数据没了吗?
领券联盟根据id拿到商品数据的第二页为空
2020-10-29 16:24 · 数据为空
[文章] 项目实战-领券联盟
效果图效果图在蓝湖上面地址:lanhuapp.com账号:lanhu@sunofbeaches.com密码:lanhu123api地址阳光沙滩商城的API文档需要准备的知识android基础知识p1~p9
[文章] 领券联盟-前端版本-PowerByNuxt.js-编写头部公共部分
编写头部公共部分商城的头部和底部都一样的,所以我们先编写这些公共的部分基本上很多网站的页面都是有公共部分的在哪里编写呢?
[问答] 关于商城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 · 安卓
[文章] 领券联盟-定义首页相关接口
,message='"+message+'\''+",data="+data+'}';}}可以通过GsonFormat插件自动生成填写内容可以参考文档里的返回样例阳光沙滩商城
2020-02-18 12:28 · 接口定义 / MVP / presenter / view / callback
[文章] 领券联盟-前端版本-PowerByNuxt.js-概述
效果应该跟这个差不多阳光沙滩商城推广一下啦,同学们淘宝购物时,可以搜索一下有没有优惠券,通过我们的链接购买,我们会得到一定的佣金。
2020-04-11 15:09 · 前端 / 前后端分类 / 服务端渲染 / NuxtJS / VUEJS
[问答] docker-compse部署nginx后无法访问
 80; # 这个是门户的访问域名,指向http://xz-bolog-protal server_name  www.xuanzhi.cn; # 商城暂时屏蔽
2021-06-27 23:03 · nginx / docker
[文章] 前端侧栏Tab和内容滚动联动切换标题
;/li><li><ahref="https://shop.sunofbeach.net"target="_blank">阳光沙滩商城
2020-08-31 17:28 · 博客系统 / 前端 / 联动 / tab / js
[文章] 领券联盟-前端版本-PowerByNuxt.js-项目创建
module.exports={/***Headersofthepage*/head:{/*标题,也就是显示在标签标题,一般动态显示*/title:'阳光沙滩-淘宝联盟商城',meta:[{charset
[文章] 【学习笔记】【领券联盟】前端(Nuxt.js)——8.渲染axios首页分类数据
margin-bottom:20px;}.recommend-category-boxul{list-style:none;}</style>需要注意大锯视频中的api是失效了的,原文:阳光沙滩商城
2021-03-17 19:23 · vue / nuxt
[问答] 学习网络编程配置中Retrofit 解析请求到的数据 用到了RecyclerView,运行出现空指针异常
00:31.570+0000","userName":"程序员拉大锯","cover":"/imgs/7.png"},{"id":"1343753738156515333","title":"阳光沙滩商城
2020-12-29 12:48 · NullPointerException
[文章] Android网络编程Retrofit
服务器接口SOBAndroidMiniWeb或者使用网站的商城API商城API文档文档和代码文档地址:retrofit文档github地址retrofitAPI文档添加依赖版本版本在release里看就好了
[问答] 安卓网络编程,程序能够把从服务器请求到的数据打印到控制台上,但UI无法正常更新,JSON解析不为空,也没有报错
56:49.150+0000","userName":"程序员拉大锯","cover":"/imgs/7.png"},{"id":"1247508627950993413","title":"阳光沙滩商城
  • 1