美文网首页
交易平台 app

交易平台 app

作者: 追忆__ | 来源:发表于2018-04-21 19:44 被阅读0次

    最近的国创项目需要做一个交易平台app ,在这里把遇到的东西记录下来。

    首先找到了几个资料,如下:

    1 Android 教你一步步搭建MVP+Retrofit+RxJava网络请求框架

    https://blog.csdn.net/teamomylife/article/details/55251895

    2 给 Android 开发者的 RxJava 详解

    http://gank.io/post/560e15be2dca930e00da1083

    3 你真的会用Retrofit2吗?Retrofit2完全教程

    https://www.jianshu.com/p/308f3c54abdd

    4 MVP开发模式的交易市场APP

    https://github.com/flyleft/xmarket/blob/master/README.md

    5 Retrofit使用指南

    https://www.jianshu.com/p/91ac13ed076d

    首先按照文1的方法,建立了测试项目,在RetrofitService的建立过程中,发现有些类没有impor,后来发现:

    当在build.gradle中引入依赖并sync后,AS会自动识别出代码中未声明的类,按Alt+Enter可以直接补齐import。

    retrofit2的Call, 据说跟OkHttp的用法一样,虽然我两个都不知道,但是貌似可以按照“请求”的意思理解。

    
    public interface RetrofitService {
    
    @GET("book/search")
    
    Call getSearchBook(@Query("q") String name,
    
    @Query("tag") String tag,
    
    @Query("start")int start,
    
    @Query("count")int count);
    
    }
    
    

    Call后面的尖括号表示Call请求的数据类型。 BOOK为Call的泛型
    RetrofitHelper中使用了Retrofit+OkHttp,可以参考文5。

    将文1的所有代码拷贝到AS中后,发现BOOK自动导入的内容有误,去文1的GitHub上复制了BOOK的实现才OK.
    自己加上了一个登录界面,使用的是AS自带的login模板,为简单起见,将注册功能直接写成了页面跳转,最终功能有效。


    图片.png

    baseUrl在RetrofitHelper中。
    文1的示例程序中,MVP是如下实现:Activity由P(即BookPresenter,Presenter则是P包含的通用功能,类BookPresenter是对这些功能的具体实现)控制,

    修改4中的程序:
    xmarket后端程序中 接口的格式均在controller中。前端接口则在network中的Req文件中,而Req的调用则在各个modelImpl中。 modelImpl的调用则在PresenterImpl中。

    测试过程中使用POSTman测试后端接口,发现会出现 图片.png
    这是因为postman显示格式不对

    但是调试时发现后端刚收到前端的message时就是NULL,怀疑是类之间无法直接赋值。 只传递基本类型可以传递, 考虑将各个参数分开传递,并在后端存入数据库前,为其分配id。或者参考商品发布时的写法

    貌似trade的id一直是null 没有id 一直到后端的tradebean,也没有id,这是因为mongodb的id是在插入之后自动分配的。 所以可以认为message在使用之前不需要考虑id。 打算第二天直接拆分参数!

    拆分参数后,交易功能可用。考虑添加计步功能和转账功能:
    页面跳转的写法:从MainActivity跳至Main2Activity:

    button2.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            //在按钮响应函数中添加如下两句话就ok了
            Intent intent=new Intent(MainActivity.this,Main2Activity.class);
            startActivity(intent);
    
        }
    });
    

    在github上找到一个计步的项目:
    https://github.com/linglongxin24/DylanStepCount
    最终成功移植到本项目

    为了实现运动币的刷新查询,模仿xmarket项目,使用SwipeRefreshLayout完成下拉刷新。相关资料如下,该资料还考虑了刷新资源的互斥操作,即只能当上次刷新完成后才能进行下次刷新。
    Android开发之SwipeRefreshLayout实现下拉刷新
    https://www.jianshu.com/p/97ab87cfce47
    运动币的查询则参考用户交易数据的查询。 UserTradePresenterImpl

    context理解:https://www.jianshu.com/p/94e0f9ab3f1d
    https://blog.csdn.net/guolin_blog/article/details/47028975

    安卓相对布局属性:
    https://www.cnblogs.com/devinzhang/archive/2012/09/30/2709017.html

    控件的出现和消失:
    XML 里面:
    android:visibility="visible" (其他参数为invisible 、gone)
    代码里面:
    obj.setVisibility(View.VISIBLE);

    遇到需要将TextView中的文字转换为数字的场景,需要使用如下语句:
    data=Integer.parseInt(myEditText.getText().toString());
    int转换为string:
    Integer.toString(step_toCoin)

    xmarket项目中,主页上的4个界面分别在各个fragment中。

    由于前后端Team的类型不一样,因此考虑在后端进行流操作,返回前端可识别的类型。流操作资料:https://blog.csdn.net/u010425776/article/details/52344425
    采用map方法,map函数需要Lambda表达式,相关资料:https://blog.csdn.net/sanchan/article/details/70753645

    查看本校商品时,后端返回给前端的URL为如下格式:


    图片.png

    而主页的分类中的url为:


    图片.png

    而两者在请求图片时调用同一个fresco函数
    因此将后端中储存的url加上 /api/v1/file/img ,并将图片库复制到pic_home
    最终采用前端直接在公网上下载分类图片

    相关文章

      网友评论

          本文标题:交易平台 app

          本文链接:https://www.haomeiwen.com/subject/oufwcftx.html