android 单词本代码,android 背单词app源码(MVP架构)
【实例简介】
基于安卓平台的背单词软件,该app支持英语单词/句子 点击开始朗读
【实例截图】
【核心代码】
package com.example.wero.a1_20154816395.mvp.home;
import android.support.v4.widget.SwipeRefreshLayout;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.TextView;
import com.blankj.utilcode.util.ToastUtils;
import com.bumptech.glide.Glide;
import com.bumptech.glide.load.resource.drawable.DrawableTransitionOptions;
import com.bumptech.glide.request.RequestOptions;
import com.example.wero.a1_20154816395.R;
import com.example.wero.a1_20154816395.mvp.MvpFragment;
import com.example.wero.a1_20154816395.service.AudioService;
import com.example.wero.a1_20154816395.utils.PlayComplete;
import com.example.wero.a1_20154816395.utils.TimeUtils;
import java.util.Date;
import butterknife.BindView;
/**
* @Title: ${filename}
* @user: wero
* @date: 18-5-20
*/
public class HomeFragment extends MvpFragment implements HomeContract.View, SwipeRefreshLayout.OnRefreshListener, View.OnClickListener{
@BindView(R.id.srefresh_home) SwipeRefreshLayout mSwipeRefreshLayout;
@BindView(R.id.image_daily) ImageView image_daily;
@BindView(R.id.tv_daily_en) TextView tv_daily_en;
@BindView(R.id.tv_daily_ch) TextView tv_daily_ch;
@BindView(R.id.btn_last) Button btn_last;
@BindView(R.id.btn_home_alert) Button btn_home_alert;
@BindView(R.id.ib_home_voice) ImageButton ib_home_voice;
@BindView(R.id.et_home_daylicount) EditText et_home_daylicount;
@BindView(R.id.tv_comp) TextView tv_comp;
private Date date;
private String voiceUrl;
@Override
protected void initView() {
date = new Date();
ib_home_voice.setOnClickListener(this);
btn_last.setOnClickListener(this);
autoSetVoiceIcon();
loadData();
mSwipeRefreshLayout.setOnRefreshListener(this);
mSwipeRefreshLayout.setColorSchemeResources(R.color.cfore2, R.color.cfore1);
btn_home_alert.setOnClickListener(this);
}
private void loadData(){
mPresenter.loadDaliySentence(TimeUtils.getShortDate(date, 0l));
mPresenter.loadDailyCount();
mPresenter.loadTarget();
}
@Override
protected HomePresenter createPresenter() {
return new HomePresenter(this);
}
@Override
protected int getLayoutResource() {
return R.layout.fragment_home;
}
/**
* 点击播放
*/
public void playVolum(){
ib_home_voice.setImageResource(R.drawable.voice2);
AudioService.startVoiceByService(getActivity(), voiceUrl);
}
/**
* 加载图片
* @param url
*/
@Override
public void setImage(String url) {
RequestOptions options = new RequestOptions();
options.centerCrop()
.placeholder(R.drawable.loading)
.error(R.drawable.error);
Glide.with(getContext())
.load(url)
.apply(options)
.into(image_daily);
}
@Override
public void setText(String en, String ch, String tts) {
tv_daily_en.setText(en);
tv_daily_ch.setText(ch);
voiceUrl = tts;
}
@Override
public void setDailyCount(int count) {
tv_comp.setText("今日已完成数量: " count);
}
@Override
public void setDialyTarget(int target) {
et_home_daylicount.setText(target "");
}
@Override
public void onRefresh() {
mPresenter.loadDaliySentence(TimeUtils.getShortDate(date, 0l));
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.btn_home_alert:
mPresenter.writeTarget(Integer.valueOf(et_home_daylicount.getText().toString()));
break;
case R.id.ib_home_voice:
playVolum();
break;
case R.id.btn_last:
showProgress();
mPresenter.loadDaliySentence(TimeUtils.getShortDate(date, TimeUtils.ONE_DAY));
break;
}
}
@Override
public void showProgress() {
mSwipeRefreshLayout.setRefreshing(true);
}
@Override
public void hideProgress() {
mSwipeRefreshLayout.setRefreshing(false);
}
/**
* Rxmanager用于进程间通信, 用于设置监听使点击时图标改变事件
*/
@Override
public void autoSetVoiceIcon() {
mRxMannager.addObserver(mRxMannager.toObserver(PlayComplete.class).subscribe(p -> {
ib_home_voice.setImageResource(R.drawable.voice1);
}));
}
@Override
public void showSuccess(String str) {
ToastUtils.showShort(str);
}
@Override
public void showFail(String str) {
ToastUtils.showShort(str);
}
}
android 单词本代码,android 背单词app源码(MVP架构)相关推荐
- 基于Android的看小说APP源码Android本科毕业设计Android小说阅读器、小说APP源码
基于kotlin + 协程 + MVVM 模式来编写的看小说APP. 完整代码下载地址:基于Android的看小说APP源码Android本科毕业设计Android小说阅读器.小说APP源码 主要框架 ...
- Android Studio打包原生Java影视APP源码
用Android Studio环境,搭建一个原生Java影视APP源码,各种功能也不错,就是有一点小bug Android Studio安装环境如果有人不会的,可能百度一下,看情况可能下次会出一个An ...
- 基于Android Studio开发的旅游记录与分享APP源码,Android旅游路线记录与分享APP源码
GoTravelling 旅游路线记录与分享Android App--同享旅行 下载地址:基于Android Studio开发的旅游记录与分享APP源码 App介绍 目标用户 在寒暑假内希望结伴同游的 ...
- android 英语单词app源码,Android英语单词记忆程序源码
/** * 源码片段 */ package wordroid.activitys; import java.util.ArrayList; import wordroid.database.DataA ...
- android audio代码分析,Android10.0AudioFocus之源码分析(二)
前言 上一篇我们简单说了AudioFocus如何使用,那么今天就从源码角度看一下AudioFocus的实现原理. 正文 先说下requestAudioFocus,源码如下: public int re ...
- 计算机毕业设计Android新闻RSS阅读器客户端app(源码+系统+mysql数据库+Lw文档)
项目介绍 基于Google Android 平台的新闻阅读器的开发过程.首先根据Google android market上面的数据,对给予Google android 移动平台的新闻阅读器进行了需求 ...
- 计算机毕业设计Android的手机音乐播放器app(源码+系统+mysql数据库+Lw文档)
项目介绍 本次程序的设计,对手机音乐播放器的框架进行了精心的构思和实现,采用主要开发工具Eclipse+Java语言,Android Development Tool的插件和Android SDK版本 ...
- 计算机毕业设计Android家庭理财系统手机软件app(源码+系统+mysql数据库+Lw文档)
项目介绍 本Android家庭理财系统app包含有手机端(客户端)和电脑端(服务端),服务端开发环境是eclipse,客户端开发环境是Android eclipse ADT. 总结出本系统需要的功能如 ...
- 计算机毕业设计Android高校图书馆推荐书目系统APP(源码+系统+mysql数据库+Lw文档)
项目介绍 本次毕业设计采用B/S模式进行设计,结合Android技术设计一个高校图书馆推荐书目系统,数据口采用瑞典MySQL AB公司的MySQL数据库,此系统是为高校图书馆推荐书目设计的,具有一定的 ...
- java计算机毕业设计基于安卓Android的高校校园跑腿系统app(源码+系统+mysql数据库+Lw文档)
项目介绍 随着计算机技术的发展,带来社会各行业的进步,信息化逐渐运用到人们的生活中,电子商务的发展又促进了快递行业的诞生,由此延伸出相应的跑腿业务,特别是在校园内最后一公里为模式的平台迅速发展起来.为 ...
最新文章
- Java服务启动慢,JVM预热的问题,我在k8s上改进了
- python读取txt文件内容-python如何获取txt文本文件中的内容
- java质因数算法_Java分解任意输入数的质因数算法的实现示例
- 基于OpenCV的计算机视觉入门(2)图片几何变换入门
- GitHub 打钱了,10 万美元!
- volatile的总结
- 基于用户的协同过滤Movielens电影推荐系统简单实例
- 软件架构之分层模式 Layered Architecture
- java反序列化漏洞POP查找_Laravel8反序列化POP链分析挖掘
- 铁通dns服务器地址是多少,电信/网通/铁通dns服务器地址大全
- 已知直线上两点求直线的一般式方程
- Marshmallow 实现序列化和反序列化
- python3爬取拉钩招聘数据
- OCPC不起量该怎么办?从这四个方面着手,轻松起量
- 获取文件夹下的文件,包含子文件夹并复制文件
- 自制万能xp镜像让重做系统变得简单
- Codeforces 982E Billiard exgcd
- day12_XML解析
- STM32 HAL库学习系列第13篇---串口重定向配置--printf
- 解决异常: SSL peer shut down incorrectly原因