【实例简介】

基于安卓平台的背单词软件,该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架构)相关推荐

  1. 基于Android的看小说APP源码Android本科毕业设计Android小说阅读器、小说APP源码

    基于kotlin + 协程 + MVVM 模式来编写的看小说APP. 完整代码下载地址:基于Android的看小说APP源码Android本科毕业设计Android小说阅读器.小说APP源码 主要框架 ...

  2. Android Studio打包原生Java影视APP源码

    用Android Studio环境,搭建一个原生Java影视APP源码,各种功能也不错,就是有一点小bug Android Studio安装环境如果有人不会的,可能百度一下,看情况可能下次会出一个An ...

  3. 基于Android Studio开发的旅游记录与分享APP源码,Android旅游路线记录与分享APP源码

    GoTravelling 旅游路线记录与分享Android App--同享旅行 下载地址:基于Android Studio开发的旅游记录与分享APP源码 App介绍 目标用户 在寒暑假内希望结伴同游的 ...

  4. android 英语单词app源码,Android英语单词记忆程序源码

    /** * 源码片段 */ package wordroid.activitys; import java.util.ArrayList; import wordroid.database.DataA ...

  5. android audio代码分析,Android10.0AudioFocus之源码分析(二)

    前言 上一篇我们简单说了AudioFocus如何使用,那么今天就从源码角度看一下AudioFocus的实现原理. 正文 先说下requestAudioFocus,源码如下: public int re ...

  6. 计算机毕业设计Android新闻RSS阅读器客户端app(源码+系统+mysql数据库+Lw文档)

    项目介绍 基于Google Android 平台的新闻阅读器的开发过程.首先根据Google android market上面的数据,对给予Google android 移动平台的新闻阅读器进行了需求 ...

  7. 计算机毕业设计Android的手机音乐播放器app(源码+系统+mysql数据库+Lw文档)

    项目介绍 本次程序的设计,对手机音乐播放器的框架进行了精心的构思和实现,采用主要开发工具Eclipse+Java语言,Android Development Tool的插件和Android SDK版本 ...

  8. 计算机毕业设计Android家庭理财系统手机软件app(源码+系统+mysql数据库+Lw文档)

    项目介绍 本Android家庭理财系统app包含有手机端(客户端)和电脑端(服务端),服务端开发环境是eclipse,客户端开发环境是Android eclipse ADT. 总结出本系统需要的功能如 ...

  9. 计算机毕业设计Android高校图书馆推荐书目系统APP(源码+系统+mysql数据库+Lw文档)

    项目介绍 本次毕业设计采用B/S模式进行设计,结合Android技术设计一个高校图书馆推荐书目系统,数据口采用瑞典MySQL AB公司的MySQL数据库,此系统是为高校图书馆推荐书目设计的,具有一定的 ...

  10. java计算机毕业设计基于安卓Android的高校校园跑腿系统app(源码+系统+mysql数据库+Lw文档)

    项目介绍 随着计算机技术的发展,带来社会各行业的进步,信息化逐渐运用到人们的生活中,电子商务的发展又促进了快递行业的诞生,由此延伸出相应的跑腿业务,特别是在校园内最后一公里为模式的平台迅速发展起来.为 ...

最新文章

  1. Java服务启动慢,JVM预热的问题,我在k8s上改进了
  2. python读取txt文件内容-python如何获取txt文本文件中的内容
  3. java质因数算法_Java分解任意输入数的质因数算法的实现示例
  4. 基于OpenCV的计算机视觉入门(2)图片几何变换入门
  5. GitHub 打钱了,10 万美元!
  6. volatile的总结
  7. 基于用户的协同过滤Movielens电影推荐系统简单实例
  8. 软件架构之分层模式 Layered Architecture
  9. java反序列化漏洞POP查找_Laravel8反序列化POP链分析挖掘
  10. 铁通dns服务器地址是多少,电信/网通/铁通dns服务器地址大全
  11. 已知直线上两点求直线的一般式方程
  12. Marshmallow 实现序列化和反序列化
  13. python3爬取拉钩招聘数据
  14. OCPC不起量该怎么办?从这四个方面着手,轻松起量
  15. 获取文件夹下的文件,包含子文件夹并复制文件
  16. 自制万能xp镜像让重做系统变得简单
  17. Codeforces 982E Billiard exgcd
  18. day12_XML解析
  19. STM32 HAL库学习系列第13篇---串口重定向配置--printf
  20. 解决异常: SSL peer shut down incorrectly原因

热门文章

  1. Oracle中国区管理层变更史
  2. HTML基本知识学习 2021-04-08
  3. Total Variation
  4. Python格式化字符串f-string概览
  5. iOS小技能: 自定义相机(基础知识储备)
  6. 思科 Cisco DHCP中继配置
  7. Centos 7 mysql 数据库安装和配置
  8. python刷网易云_GitHub - a744451680/python_wangyiyun: python 网易云打卡自动刷300
  9. 笔记本ThinkPad E430c加装内存和SSD固态硬盘
  10. lombok slfj 中_Lombok快速入门