# MVP-Retrofit-RxJava(项目年久失修,不再建议使用)
Android MVP+Retrofit+RxJava项目实践
1.登录 2.首页 3.图片
![登录](http://img.blog.csdn.net/20160720171017747)![首页](http://img.blog.csdn.net/20160720171056528)![图片](http://img.blog.csdn.net/20160720171615828)
整个项目使用MVP架构,导航栏使用TabLayout+ViewPager+Fragment,网络请求部分则使用目前流行的Retrofit+RxJava!
下拉刷新: PullRecylerView:https://github.com/baiyuliang/PullRecyclerView
CSDN:http://blog.csdn.net/baiyuliang2013/article/details/51516727
部分代码:
LoginActivity:
```
/**
* 登录
*/
void doLogin() {
String account = et_account.getText().toString();
if (TextUtils.isEmpty(account)) {
Toast.makeText(LoginActivity.this, "请输入您的手机号", Toast.LENGTH_SHORT).show();
return;
}
String pwd = et_pwd.getText().toString();
if (TextUtils.isEmpty(pwd)) {
Toast.makeText(LoginActivity.this, "请输入您的密码", Toast.LENGTH_SHORT).show();
return;
}
loginPresenter.login(account);
}
@Override
public void loginSuccess(LoginBean loginBean) {
startActivity(MainActivity.class);
finish();
Toast.makeText(LoginActivity.this, "登录成功", Toast.LENGTH_SHORT).show();
}
@Override
public void loginFail(String message) {
Toast.makeText(LoginActivity.this, message, Toast.LENGTH_SHORT).show();
}
```
网络请求核心代码:
ApiUtil:
```
public class ApiUtil {
public static ApiService createApiService() {
OkHttpClient.Builder okHttpClientBuilder = new OkHttpClient.Builder();
okHttpClientBuilder.connectTimeout(10 * 1000, TimeUnit.MILLISECONDS);//设置请求超时时间10s
OkHttpClient client = okHttpClientBuilder
.addInterceptor((chain) -> {//添加统一参数
Request request = chain.request();
HttpUrl url = request.url()
.newBuilder()
.addQueryParameter("showapi_appid", "20676")
.addQueryParameter("showapi_sign", "f730cd8c4cf8498895f83d43ddaba8c2")
.build();
request = request.newBuilder().url(url).build();
return chain.proceed(request);
})
.addInterceptor((chain) -> {//log拦截器
Request request = chain.request();
LogUtil.v("request>>" + request.toString());
Response response = chain.proceed(chain.request());
MediaType mediaType = response.body().contentType();
String content = response.body().string();
LogUtil.i("response>>" + content);
return response.newBuilder().body(ResponseBody.create(mediaType, content)).build();
})
.hostnameVerifier((hostname, session) -> true)
.build();
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(ApiService.API_ROOT)
.client(client)
.addConverterFactory(GsonConverterFactory.create(new Gson()))
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())
.build();
return retrofit.create(ApiService.class);
}
}
```
#### 已知bug:
首页使用RecyclerView+Header的模式,整体为一个RecyclerView,因RecycleView没有类似ScrollView的滑动监听,因此测量RecycleView滑动距离时,在item数量变化情况下会影响测量结果,导致首页标题栏跟随手指滑动透明效果出现问题,此案例只作为学习使用,实际项目中可以使用阿里的vlayout,强大易用!
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
Android MVP+Retrofit+RxJava项目实践,简单易懂,可直接应用于项目! 整个项目使用MVP架构,导航栏使用TabLayout+ViewPager+Fragment,网络请求部分则使用目前流行的Retrofit+RxJava! 下拉刷新: PullRecylerView 网络请求核心代码: ApiUtil:
资源推荐
资源详情
资源评论
收起资源包目录
Android MVP+Retrofit+RxJava项目实践,简单易懂,可直接应用于项目! (130个子文件)
appdemo.apk 2.66MB
gradlew.bat 2KB
.gitignore 97B
.gitignore 7B
build.gradle 1KB
build.gradle 491B
settings.gradle 15B
gradlew 5KB
gradle-wrapper.jar 52KB
PullBaseView.java 19KB
FragmentTab1.java 9KB
NewsAdapter.java 6KB
BaseAdapter.java 5KB
FragmentImageTab2.java 4KB
FragmentImageTab1.java 4KB
BaseActivity.java 4KB
BaseFragment.java 3KB
MyLinearLayoutManager.java 3KB
NewsPresenter.java 3KB
ImagesPresenter.java 3KB
RefreshAnimView.java 3KB
LoginActivity.java 3KB
LoginPresenter.java 2KB
MyProgressDialog.java 2KB
ApiUtil.java 2KB
RefreshLoadingView.java 2KB
ImagesAdapter.java 2KB
MainActivity.java 2KB
FragmentTab2.java 2KB
BasePresenter.java 2KB
FragmentMainTabAdapter.java 2KB
LoginModel.java 1KB
ApiService.java 1KB
FragmentVedioAdapter.java 1KB
PullRecyclerView.java 1KB
News.java 997B
FragmentTab3.java 850B
NewsModel.java 648B
BaseBean.java 601B
ImageModel.java 579B
ImagesMvpView.java 565B
NewsMvpView.java 563B
LogUtil.java 544B
LoginMvpView.java 439B
SysUtil.java 434B
LoginBean.java 385B
NewsBean.java 381B
Presenter.java 362B
MvpView.java 346B
MyApplication.java 305B
README.md 4KB
.name 7B
banner.png 295KB
takeout_img_list_loading_pic2.png 67KB
takeout_img_list_loading_pic1.png 63KB
head_default.png 34KB
ic_launcher.png 10KB
ic_loading_dialog.png 9KB
ic_launcher.png 8KB
ic_launcher.png 5KB
icon_tabbar_settings_selected.png 4KB
icon_tabbar_settings.png 4KB
icon_tabbar_favorites.png 4KB
icon_tabbar_favorites_selected.png 4KB
icon_tabbar_library.png 4KB
icon_tabbar_library_selected.png 4KB
ic_launcher.png 3KB
ic_launcher.png 2KB
ic_common_back_arrow_pressed.png 2KB
ic_common_back_arrow_normal.png 1KB
ic_pulltorefresh_arrow_up.png 912B
ic_pulltorefresh_arrow.png 823B
home_icon_cg_gllife.png 717B
ic_search.png 645B
home_icon_cg_gllaw.png 605B
home_icon_cg_glfriends.png 425B
fop.png 405B
home_icon_cg_glhouse.png 263B
iv_qr.png 209B
proguard-rules.pro 674B
gradle.properties 855B
gradle-wrapper.properties 231B
item_home_head.xml 5KB
fragment_3.xml 4KB
item_news.xml 2KB
misc.xml 2KB
common_title_bar.xml 2KB
activity_login.xml 2KB
fragment_1.xml 2KB
item_girls.xml 1KB
refresh_header.xml 1KB
tab1_selector.xml 1KB
tab3_selector.xml 1KB
tab2_selector.xml 1KB
loading_dialog.xml 1KB
styles.xml 1KB
fragment_2.xml 1008B
AndroidManifest.xml 990B
main_tab_text_selector.xml 951B
colors.xml 824B
共 130 条
- 1
- 2
资源评论
三季人G
- 粉丝: 113
- 资源: 2370
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 农村信用社联合社计算机信息系统投产与变更管理办.docx
- 农村信用社联合社计算机信息系统数据管理办法.docx
- 利用SPSS作临床效度分析线上计算网站介绍-医学研究部统计谘.(医学PPT课件).ppt
- 利用Zabbix监控mysqldump定时备份数据库状态.docx
- 利用计算机解决问题的基本过程.doc
- 化工铁路通信工程总结.doc
- 北京大学网络教育软件工程作业.docx
- 医药公司(连锁店)计算机操作规程未新系统的自行按照旧制修改-新系统过制的编号加修模版.doc
- 医药公司(连锁店)计算机系统操作规程模版.doc
- 医药连锁门店计算机系统的操作和管理程序未新系统的自行按照旧制修改-新系统过制的编号加修模版.docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功