接口

//轮播@GET("ad/getAd")Observable<News> getLunbo();//九宫格@GET("product/getCatagory")Observable<News2> getJiugongge();//商品推荐@GET("home/getHome?")Observable<News3> getTuijian();//动态搜索@GET("product/searchProducts?")Observable<Sousuo> getShou(@Query("keywords")String keywords);//购物车@GET("product/getCarts")Observable<ResponseBody> getshop(@Query("uid")int uid,@Query("tooken")String token);//分类左侧@GET("product/getCatagory")Observable<Zuo> getZuob();//右侧子分类@GET("product/getProductCatagory")Observable<You> getYoub(@Query("cid")int id);//登录@GET("user/login")Observable<Login> getlogin(@Query("mobile") String mobile, @Query("password") String password);//注册@GET("user/reg")Observable<Regin> getregin(@Query("mobile") String mobile, @Query("password") String password);//商品详情@GET("product/getProductDetail")Observable<Xiangqing> getxiangqing(@Query("pid")int pid);//加入购物车@GET("product/addCart")Observable<AddShopCartBean> addsp(@Query("uid") int uid,@Query("pid")int pid);

依赖

implementation 'com.jakewharton:butterknife:8.8.1'annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'implementation 'com.recker.flybanner:flybanner:1.3'implementation 'com.google.code.gson:gson:2.8.5'// 其他依赖implementation 'com.facebook.fresco:fresco:0.12.0'// 在 API < 14 上的机器支持 WebP 时,需要添加implementation 'com.facebook.fresco:animated-base-support:0.12.0'// 支持 GIF 动图,需要添加implementation 'com.facebook.fresco:animated-gif:0.12.0'// 支持 WebP (静态图+动图),需要添加implementation 'com.facebook.fresco:animated-webp:0.12.0'implementation 'com.facebook.fresco:webpsupport:0.12.0'// implementation 'com.ashokvarma.android:bottom-navigation-bar:1.3.1'implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0-alpha-14'implementation 'com.scwang.smartrefresh:SmartRefreshHeader:1.1.0-alpha-14'//没有使用特殊Header,可以不加这行implementation 'org.greenrobot:eventbus:3.1.1'

loginActivity

import android.Manifest;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Build;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.ActivityCompat;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;import com.example.jd1012.R;
import com.example.jd1012.app.bean.Login;
import com.example.jd1012.di.component.DaggerloginActivityComponent;
import com.example.jd1012.di.module.loginActivityModule;
import com.example.jd1012.mvp.contract.loginActivityContract;
import com.example.jd1012.mvp.presenter.loginActivityPresenter;
import com.jess.arms.base.BaseActivity;
import com.jess.arms.di.component.AppComponent;
import com.jess.arms.utils.ArmsUtils;
import com.umeng.socialize.UMAuthListener;
import com.umeng.socialize.UMShareAPI;
import com.umeng.socialize.bean.SHARE_MEDIA;import java.util.Map;import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;import static com.jess.arms.utils.Preconditions.checkNotNull;public class loginActivityActivity extends BaseActivity<loginActivityPresenter> implements loginActivityContract.View {@BindView(R.id.qq_denglu)Button qqDenglu;@BindView(R.id.btn_login)Button btnLogin;@BindView(R.id.btn_regin)Button btnRegin;@BindView(R.id.edit_user)EditText editUser;@BindView(R.id.edit_password)EditText editPassword;private String name;private String iconurl;UMAuthListener authListener = new UMAuthListener() {/*** @desc 授权开始的回调* @param platform 平台名称*/@Overridepublic void onStart(SHARE_MEDIA platform) {}/*** @desc 授权成功的回调* @param platform 平台名称* @param action 行为序号,开发者用不上* @param data 用户资料返回*/@Overridepublic void onComplete(SHARE_MEDIA platform, int action, Map<String, String> data) {Toast.makeText(loginActivityActivity.this, "成功了", Toast.LENGTH_LONG).show();name = data.get("name");iconurl = data.get("iconurl");Intent intent2 = new Intent();Bundle bundle = new Bundle();bundle.putString("name", name);bundle.putString("iconurl", iconurl);intent2.putExtras(bundle);setResult(888, intent2);finish();}/*** @desc 授权失败的回调* @param platform 平台名称* @param action 行为序号,开发者用不上* @param t 错误原因*/@Overridepublic void onError(SHARE_MEDIA platform, int action, Throwable t) {Toast.makeText(loginActivityActivity.this, "失败:" + t.getMessage(),Toast.LENGTH_LONG).show();}/*** @desc 授权取消的回调* @param platform 平台名称* @param action 行为序号,开发者用不上*/@Overridepublic void onCancel(SHARE_MEDIA platform, int action) {Toast.makeText(loginActivityActivity.this, "取消了", Toast.LENGTH_LONG).show();}};private String edit_user;private String edit_password;private SharedPreferences sp;@Overridepublic void setupActivityComponent(@NonNull AppComponent appComponent) {DaggerloginActivityComponent //如找不到该类,请编译一下项目.builder().appComponent(appComponent).loginActivityModule(new loginActivityModule(this)).build().inject(this);}@Overridepublic int initView(@Nullable Bundle savedInstanceState) {return R.layout.activity_login; //如果你不需要框架帮你设置 setContentView(id) 需要自行设置,请返回 0}@Overridepublic void initData(@Nullable Bundle savedInstanceState) {if (Build.VERSION.SDK_INT >= 23) {String[] mPermissionList = new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.CALL_PHONE, Manifest.permission.READ_LOGS, Manifest.permission.READ_PHONE_STATE, Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.SET_DEBUG_APP, Manifest.permission.SYSTEM_ALERT_WINDOW, Manifest.permission.GET_ACCOUNTS, Manifest.permission.WRITE_APN_SETTINGS};ActivityCompat.requestPermissions(this, mPermissionList, 123);}}@Overridepublic void showLoading() {}@Overridepublic void hideLoading() {}@Overridepublic void showMessage(@NonNull String message) {checkNotNull(message);ArmsUtils.snackbarText(message);}@Overridepublic void launchActivity(@NonNull Intent intent) {checkNotNull(intent);ArmsUtils.startActivity(intent);}@Overridepublic void killMyself() {finish();}@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);UMShareAPI.get(this).onActivityResult(requestCode, resultCode, data);}@Overridepublic void onRequestPermissionsResult(int requestCode,String permissions[], int[] grantResults) {}@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);// TODO: add setContentView(...) invocationButterKnife.bind(this);}@OnClick(R.id.qq_denglu)public void onViewClicked() {UMShareAPI.get(this).getPlatformInfo(loginActivityActivity.this, SHARE_MEDIA.QQ, authListener);}@OnClick({R.id.btn_login, R.id.btn_regin})public void onViewClicked(View view) {switch (view.getId()) {case R.id.btn_login:edit_user = editUser.getText().toString();edit_password = editPassword.getText().toString();mPresenter.login(edit_user,edit_password);break;case R.id.btn_regin:Intent intent = new Intent(loginActivityActivity.this, reginActivity.class);startActivity(intent);break;}}@Overridepublic void data(Login login) {String code = login.getCode();String msg = login.getMsg();if (code.equals("0")){String mobile = login.getData().getMobile();int uid = login.getData().getUid();String token = login.getData().getToken();sp = getSharedPreferences("flag", Context.MODE_PRIVATE);SharedPreferences.Editor editor = sp.edit();editor.putString("mobile", mobile);editor.putInt("uid", uid);editor.putString("token", token);editor.commit();Toast.makeText(this, msg, Toast.LENGTH_SHORT).show();Intent intent = new Intent();Bundle bundle = new Bundle();bundle.putString("mobile",mobile);intent.putExtras(bundle);setResult(1,intent);finish();}Toast.makeText(this, msg, Toast.LENGTH_SHORT).show();}
}

login主页面+接口+依赖相关推荐

  1. Python接口自动化之接口依赖

    VOL 129 28 2020-05 今天距2021年216天 这是ITester软件测试小栈第129次推文 点击上方蓝字"ITester软件测试小栈"关注我,每周一.三.五早上  ...

  2. python接口自动化接口依赖_Python接口自动化之mock模块简单使用

    mock简介 mock原是python的第三方库,python 2可以直接安装mock模块,但在python 3.3以后mock模块已经整合到了unittest测试框架中,不需要再单独安装. Mock ...

  3. Jmeter系列之接口依赖

    VOL 133 10 2020-06 今天距2021年204天 这是ITester软件测试小栈第133次推文 点击上方蓝字"ITester软件测试小栈"关注我,每周一.三.五早上  ...

  4. 内外分离接口依赖及UIScrollView知识点

    1:Class Extension 还能巧妙的解决一个接口暴露问题 有些属性或者方法对外可以提供,有些只针对内部的类进行调用: // Sark.framework/Sark.h @interface ...

  5. 多个微服务的接口依赖如何测试_微服务测试之接口测试和契约测试

    日常开发过程中,项目的接口通常由服务提供方约定和提供,微服务模式下接口被多个消费者调用更是常态,那么提供方接口的变更如何快速.高效.无遗漏的通知给消费者呢?另外,当一个service同时被多个使用者调 ...

  6. golang依赖接口,不要依赖具体实现

    package mainimport "fmt"const (x = 11a = iotab = iotac0 = 23c1c2d = iotae ) const (aa = io ...

  7. ApiPost自动化测试基础之:接口参数依赖的情景处理

    在<ApiPost环境变量之第1课>里,我们介绍了什么是ApiPost环境变量,并如何定义.使用它. 环境变量.接口参数依赖的处理是ApiPost自动化测试的基础.本文主要讲解接口参数依赖 ...

  8. python写后台接口请求出错_python登录接口测试问题记录与解决

    最近做一个登录接口测试中,发现了以下的一些场景,本次将所遇到的问题以及解决过程做下记录: 1.抓包发现登录操作时,先后请求三个接口,并且每个接口有关联 2.每次请求都需要保留cookie信息,下个接口 ...

  9. jmeter的java测试框架_性能测试学习之路 (四)jmeter 脚本开发实战(JDBC JMS 接口脚本 轻量级接口自动化测试框架)...

    1.业务级脚本开发 登录脚本->思路:在线程组下新建两个HTTP请求,一个是完成访问登录页,一个是完成登录的数据提交. 步骤如下: 1) 访问登录页 2) 提交登录数据的HTTP PS:对于业务 ...

最新文章

  1. 标准出现问题,人工智能正在走向错误的方向
  2. html轮播图速度加快,各位老师,为什么我用jq写的轮播图,移入移出速度会加快...
  3. oracle 回闪技术恢复误删数据
  4. Hyperopt官方中文文档导读
  5. java并发编程之美-阅读记录6
  6. 计算机数日期,计算机如何计算两个日期之间的天数
  7. 转账给张三,钱却被李四收到,如何狙击凶险的 App 漏洞?——专访娜迦CTO玩命...
  8. python多环境管理_Python多版本环境管理之pyenv
  9. php 什么是 cookie? 会话 cookie 与持久性 cookie 之间 有何区别?
  10. c语言成绩管理系统的作用,C语言实现班级成绩管理系统
  11. 腾讯帮助警方破获 30+ 起吃鸡外挂案件;Java 领域的五大发展预测
  12. java 中的连接超时_【java中处理http连接超时的方法】
  13. 软件测试分类冒烟测试,什么是冒烟测试
  14. 在线音视频加速器终于实现了
  15. 42-面对对象编程(高级部分)1
  16. 【身体这些部位不舒服的时候,你知道意味着什么吗?】
  17. 微信小程序:云开发开通
  18. Oracle安装和配置
  19. 「UOJ224」「NOI2016」旷野大计算
  20. Java基础知识学习笔记总结

热门文章

  1. Your build settings specify a provisioning profile with the UUID, no provisioni(没多大用)
  2. tiledmap 图块属性_Tiled Editor 图块的两种导入方式
  3. 关于读书的名人名言,让你体会读书的好处有哪些
  4. 推荐系统实战(5)——基于内容的推荐算法(CB)
  5. 网页版2048html制作,基于HTML+CSS+JS的网页版2048的实现.pdf
  6. 明天14:00,棕榈泉见~友盟+、大麦网、凯叔讲故事都在
  7. 西北大学发布猴脸识别论文,公开 10 种动物面部数据集
  8. html箭头随着点击而移动,点击左右箭头,图片跟随移动,正中的图片始终最大...
  9. antd从v2升级到v3
  10. 电子邮件服务器是硬盘上的,电子邮件的地址、账号和邮件服务器分别是什么?...