12/12/2020掌握 Android开发的前后端应用

  • 学习目标:
  • 学习内容:
  • 学习时间:
  • 学习产出:

学习目标:

掌握 Android开发的前后端应用

学习内容:

要学的内容
1、 Android项目中添加RadioButton单选按钮
2、 Android项目中添加CheckBox复选框
3、 Android项目中添加DatePicker
4、 Android项目中添加TimePicker
5、 Android项目中添加Chronometer
6、 Android项目中添加ProgressBar
7、 Android项目中添加SeekBar
8、 Android项目中添加RatingBar


学习时间:

1、 周一至周天早上9:00-上午 11:30


学习产出:

学习计划的总量
1、 网络视频20个
2、 CSDN 技术博客 1 篇

==================================

  1. 添加RadioButton单选按钮
    链接:blibliAndroid开发从入门到精通(项目案例版)42
    实现勾选单选题,并且提交
    效果如图:

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"android:orientation="vertical"><TextViewandroid:layout_width="match_parent"android:layout_height="wrap_content"android:paddingTop="20dp"android:paddingLeft="20dp"android:paddingRight="20dp"android:paddingBottom="20dp"android:textSize="18sp"android:text="This is a question, please pick an answer from the below four choices and hit submit after you pick."/><RadioGroupandroid:id="@+id/rg1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:paddingLeft="20dp"><RadioButtonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="A.11111"android:textColor="#000000"/><RadioButtonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="B.22222"android:textColor="#000000"/><RadioButtonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="C.33333"android:textColor="#000000"/><RadioButtonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="D.44444"android:textColor="#000000"/></RadioGroup><Buttonandroid:id="@+id/btn1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="20dp"android:layout_marginLeft="20dp"android:background="@color/colorPrimary"android:textColor="#ffffff"android:text="submit"/>
</LinearLayout>

MainActivity.java

public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);final RadioGroup rg=(RadioGroup)findViewById(R.id.rg1);rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {@Overridepublic void onCheckedChanged(RadioGroup rg, int i) {RadioButton rb=(RadioButton)findViewById(i);//rb.getText();Toast.makeText(MainActivity.this,"You have chose:"+ rb.getText(),Toast.LENGTH_LONG).show();}});Button button=(Button)findViewById(R.id.btn1);button.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {for (int i = 0; i < rg.getChildCount(); i++) {RadioButton rb=(RadioButton)rg.getChildAt(i);if(rb.isChecked()){Toast.makeText(MainActivity.this,"submit"+rb.getText(),Toast.LENGTH_SHORT).show();break;}}}});}
}

2.添加CheckBox复选框
链接:blibliAndroid开发从入门到精通(项目案例版)44

  <CheckBoxandroid:id="@+id/like1"android:layout_marginLeft="20dp"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="PE"android:checked="true"/><CheckBoxandroid:id="@+id/like2"android:layout_marginLeft="20dp"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="Music"/><CheckBoxandroid:id="@+id/like3"android:layout_marginLeft="20dp"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="Art"/>
public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);final CheckBox like1;like1=(CheckBox) findViewById(R.id.like1);like1.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {@Overridepublic void onCheckedChanged(CompoundButton compoundButton, boolean b) {if(like1.isChecked()){Toast.makeText(MainActivity.this,like1.getText(),Toast.LENGTH_LONG).show();}}});}
}
  1. 添加DatePicker
    链接:blibliAndroid开发从入门到精通(项目案例版)46

activity_main.xml

 <DatePickerandroid:id="@+id/datepicker"android:layout_width="match_parent"android:layout_height="match_parent"android:layout_marginLeft="20sp"android:layout_marginTop="20sp"/>`

MainActivity.java

public class MainActivity extends AppCompatActivity {int year,month,day;DatePicker datePicker;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);datePicker=findViewById(R.id.datepicker);Calendar calender= Calendar.getInstance();year=calender.get(Calendar.YEAR);//instance.get(util.year)month=calender.get(Calendar.MONTH);day=calender.get(Calendar.DAY_OF_MONTH);datePicker.init(year, month, day, new DatePicker.OnDateChangedListener() {@Overridepublic void onDateChanged(DatePicker datePicker, int year, int monthOfYear, int dayOfMonth) {MainActivity.this.year=year;//change lv in mainactivityMainActivity.this.month=monthOfYear;MainActivity.this.day=dayOfMonth;show(year,monthOfYear,dayOfMonth);}});private void show(int year,int month,int day){String str=(month+1)+"/"+day+"/"+year;Toast.makeText(MainActivity.this,str,Toast.LENGTH_SHORT).show();}
}
  1. 添加TimePicker
    链接:blibliAndroid开发从入门到精通(项目案例版)47

activity_main.xml

<TimePickerandroid:id="@+id/timepicker"android:layout_width="wrap_content"android:layout_height="wrap_content"/>

MainActivity.java

public class MainActivity extends AppCompatActivity {TimePicker timePicker;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);timePicker=findViewById(R.id.timepicker);timePicker.setIs24HourView(true);timePicker.setOnTimeChangedListener(new TimePicker.OnTimeChangedListener() {@Overridepublic void onTimeChanged(TimePicker timePicker, int i, int i1) {String str=i+":"+i1;Toast.makeText(MainActivity.this,str,Toast.LENGTH_LONG).show();}});}
}
  1. 添加Chronometer
    链接:blibliAndroid开发从入门到精通(项目案例版)48

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"><Chronometerandroid:id="@+id/chrono"android:textSize="30sp"android:textColor="@color/colorPrimary"android:layout_width="wrap_content"android:layout_height="wrap_content"android:format="Time used: %s"/>
</RelativeLayout>

MainActivity.java

public class MainActivity extends AppCompatActivity {Chronometer chronometer;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main); //display in full screengetWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);chronometer=findViewById(R.id.chrono);chronometer.setBase(SystemClock.elapsedRealtime());chronometer.setFormat("%s");chronometer.start();chronometer.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() {@Overridepublic void onChronometerTick(Chronometer chronometer) {if(SystemClock.elapsedRealtime()-chronometer.getBase()>=60000){chronometer.stop();}}});}
}
  1. 添加ProgressBar进度条
    链接:blibliAndroid开发从入门到精通(项目案例版)51

activity_main.xml

    <ProgressBarandroid:id="@+id/pb2"android:layout_alignParentBottom="true"android:layout_marginBottom="20dp"style="@android:style/Widget.ProgressBar.Horizontal"android:layout_width="match_parent"android:layout_height="50dp"android:max="100"/>

MainActivity.java

public class MainActivity extends AppCompatActivity {ProgressBar progressBar;private int mProgress=0;private static Handler mhandler;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);progressBar=findViewById(R.id.pb2);
//不支持在主线程中更新ui组件
// 不支持在当前activity中更新当前activity页面的组件,所以需要一个 消息handler//发送消息,更新ui组件mhandler=new Handler(){@Overridepublic void handleMessage(@NonNull Message msg) {if(msg.what==0x111){progressBar.setProgress(mProgress);}else{Toast.makeText(MainActivity.this,"The progress has done",Toast.LENGTH_SHORT).show();progressBar.setVisibility(View.GONE); //finish the progress,then bar gone}}};new Thread(new Runnable() {@Overridepublic void run() {while(true){//耗时操作mProgress=dowork();Message msg=new Message();if(mProgress<100){msg.what=0x111;mhandler.sendMessage(msg);}else{ //mprogress=100msg.what=0x110;mhandler.sendMessage(msg);break;}}}private int dowork() {mProgress+=Math.random()*10;try {Thread.sleep(200);} catch (InterruptedException e) {e.printStackTrace();}return mProgress;}}).start();}
}

7、 添加SeekBar拖动条
链接:blibliAndroid开发从入门到精通(项目案例版)53
通过拉动拖动条实现对图片对比度的调整:
效果如图:

activity_main.xml

<ImageViewandroid:id="@+id/image1"android:src="@drawable/goldengate"android:layout_width="match_parent"android:layout_height="match_parent"/><SeekBarandroid:id="@+id/seekbar"android:layout_alignParentBottom="true"android:layout_marginBottom="100dp"android:layout_width="match_parent"android:layout_height="wrap_content"android:max="255"android:progress="255"/>

MainActivity.java

public class MainActivity extends AppCompatActivity {SeekBar seekBar;ImageView imageView;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main); //display in full screen//getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);imageView=findViewById(R.id.image1);seekBar=findViewById(R.id.seekbar);seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {@Overridepublic void onProgressChanged(SeekBar seekBar, int progress, boolean b) {//根据progress改变图像透明度imageView.setImageAlpha(progress);}@Overridepublic void onStartTrackingTouch(SeekBar seekBar) {}@Overridepublic void onStopTrackingTouch(SeekBar seekBar) {}});}
}

8、 添加RatingBar星级评分条
链接:blibliAndroid开发从入门到精通(项目案例版)55
读取用户打分,提交后显示在屏幕上
效果如图:

activity_main.xml

<RatingBarandroid:id="@+id/ratingbar"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="bottom"android:layout_marginBottom="80dp"android:numStars="5"android:rating="2"android:stepSize="1"/><Buttonandroid:id="@+id/btn"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginLeft="20dp"android:layout_marginBottom="45dp"android:layout_gravity="bottom"android:text="submit"/>
<!--    android:stepSize="0.5"-->
<!--    android:isIndicator="true"  cannot be changed-->

MainActivity.java

package com.raspberry.myratingbar;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.RatingBar;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {RatingBar ratingbar;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);ratingbar=(RatingBar)findViewById(R.id.ratingbar);Button button=findViewById(R.id.btn);button.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {float rating=ratingbar.getRating();Toast.makeText(MainActivity.this,"You got ratings: "+rating,Toast.LENGTH_SHORT).show();}});//        String stepsize=String.valueOf(ratingbar.getStepSize());
//        Toast.makeText(MainActivity.this,"The Stepsize is: "+stepsize,Toast.LENGTH_SHORT).show();
//        String progress=String.valueOf(ratingbar.getProgress());
//        Toast.makeText(MainActivity.this,"The Progress is: "+progress,Toast.LENGTH_SHORT).show();}
}

Thank you for reading !

掌握 Android开发的前后端应用相关推荐

  1. 基于SpringBoot+Mybatis开发的前后端ERP系统Saas平台

    源码介绍 基于SpringBoot+Mybatis开发的前后端ERP系统Saas平台 ,专注于中小微企业的ERP软件.进销存系统,是一套基于SpringBoot2.2.0, Mybatis, JWT, ...

  2. vue手机端回退_推荐3个快速开发平台 前后端都有 接私活又有着落了

    经常性逛github,发现了一些优秀的开源项目,其中的框架及代码非常不错,现在给大家推荐三个快速开发平台. 第一个就是优秀的Jeecg-boot快速开发平台 前端采用阿里的ant-design-vue ...

  3. spring boot + vue + element-ui全栈开发入门——前后端整合开发

    一.配置 思路是通过node的跨域配置来调用spring boot的rest api. 修改config\index.js文件,设置跨域配置proxyTable: proxyTable: {'/api ...

  4. 推荐3个快速开发平台 前后端都有 项目经验又有着落了

    今日推荐 推荐一款开源 Java 版的视频管理系统 我是培训机构出身的程序员,不敢告诉任何人 14个项目 经常性逛github,发现了一些优秀的开源项目,其中的框架及代码非常不错,现在给大家推荐三个快 ...

  5. 0-2岁的app开发人员必读,Android开发APP前的准备事项

    2019独角兽企业重金招聘Python工程师标准>>> 随着移动互联网的兴起,各行各业对移动应用的需求越来越大,从事APP开发的人也越来越多,APP开发行业可以说是方兴未艾.APP开 ...

  6. 基于SpringBoot+Vue开发的前后端分离博客项目-Java后端接口开发

    文章目录 1. 前言 2. 新建Springboot项目 3. 整合mybatis plus 第一步:导依赖 第二步:写配置文件 第三步:mapper扫描+分页插件 第四步:代码生成配置 第五步:执行 ...

  7. 超详细域名备案+阿里云服务器配置+小程序开发(简略)+前后端分离(简略)

    文章目录 前言 一.试水环节(配置阿里云服务器环境) 二.购买域名及备案 1.购买域名 2.域名备案 3.域名解析 4.白嫖SSL证书 5.在网站上链接备案号 三.设置微信小程序开发的权限 四.安装微 ...

  8. 保姆级的一个基于spring boot开发的前后端分离商城教程

    前言 推荐一个基于spring boot开发前后端分离商城,有完整的代码笔记和视频教程,希望对正在找项目练手的同学有所帮助 本文资料文档领取(在文末) 一.项目背景 5中常见的电商模式 B2B .B2 ...

  9. 基于SpringBoot+Vue开发的前后端分离人力资源管理系统

    项目介绍 一款 Java 语言基于 SpringBoot2.x.MybatisPlus.Vue.ElementUI.MySQL等框架精心打造的一款前后端分离框架,致力于实现模块化.组件化.可插拔的前后 ...

  10. 无需CORS,用nginx解决跨域问题,轻松实现低代码开发的前后端分离

    近年来,前后端分离已经成为中大型软件项目开发的最佳实践. 在技术层面,前后端分离指在同一个Web系统中,前端服务器和后端服务器采用不同的技术栈,利用标准的WebAPI完成协同工作.这种前后端分离的&q ...

最新文章

  1. WordPress 5.2 Beta 3 发布,要求 PHP 5.6.20 以上版本
  2. Redis info参数总结
  3. android版本相机权限,Android 11系统权限收紧,第三方APP仅支持调用原生相机
  4. Spring Cloud面试题(2020最新版)
  5. 使用junit+mockito进行mock测试实例
  6. C++day08 学习笔记
  7. dedecms{dede:sql}{dede:php}标签的用法
  8. 2019南昌市计算机教师招聘,南昌经济技术开发区2019年招聘教师拟聘用人员名单...
  9. 怎么把做好的ps保存成图片_PS保存图片提示“无法完成请求”,这里有4种解决方法...
  10. java国际化之时区问题处理
  11. 「程序员值得一看」| 传说中的“全球公认最健康的作息时间表”
  12. vr线上虚拟展馆H5三维购物带的便利【商迪3D】与您细说
  13. PANDA 下载及安装
  14. 图卷积神经网络 | Python实现基于GCN-GRU图卷积门控循环单元网络模型
  15. 【雕爷学编程】Arduino动手做(102)---TM1638按键数码管
  16. 动力煤浅析+今日交易记录 2021.10.18
  17. 最新小米易支付系统源码
  18. 黑阔主流攻防之不合理的cookie验证方式
  19. 撩课小程序(教育类)实战存档(小程序 + 云开发)
  20. 深度学习-84:自动驾驶技术(L0-L5级别)

热门文章

  1. 空格表示 java_java 正则表达式 空格怎么表示
  2. Git(3):git clone远程GitHub仓库代码出现“Permission Denied (publickey)”问题
  3. C# LINQ to XML
  4. jQuery图片预加载(延迟加载)之插件Lazy Load
  5. [label][responsive-web-design]网页响应测试各种尺寸的工具
  6. SQL Server2012新特性
  7. Oracle数据库编译存储过程挂死问题解决办法
  8. Two Sum(Leetcode001)
  9. spring 依赖注入_这几个关于Spring 依赖注入的问题你清楚吗?
  10. 自定义NodeJS-C++ Addons使用说明