2.6 UI控件与后台联系实现
完成的结果如下 :
当点击 左按钮时 最上边的显示栏更改为左 反之则为右 点击开关显示为开或者关
下边两个为显示加载的界面 在输入栏输入数值可以控制进度条的百分比并且显示在最上边 点击图片一二切换图片
勾选下边三个选项可以在最上方显示栏中显示出来 勾选的课程 可多选
选择评价等级会出现选择的等级。

源代码如下:
package com.example.uidemo; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.ProgressBar;
import android.widget.RadioGroup;
import android.widget.RatingBar;
import android.widget.SeekBar;
import android.widget.Switch;
import android.widget.TextView;
import android.widget.Toast; public class MainActivity extends AppCompatActivity {
TextView display;
Button buttonleft,buttonright,button3;
Switch aSwitch;
ProgressBar progressBar;
EditText editText;
RadioGroup radioGroup;
ImageView imageView;
SeekBar seekBar;
CheckBox checkBoxyuwen,checkBoxshuxue,checkBoxyingyu;
RatingBar ratingBar;
String yuwen="";
String shuxue="";
String yingyu=""; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
display=findViewById(R.id.textView);
buttonleft=findViewById(R.id.button);
buttonright=findViewById(R.id.button2);
button3=findViewById(R.id.button3);
aSwitch=findViewById(R.id.switch1);
progressBar=findViewById(R.id.progressBar3);
editText=findViewById(R.id.editText);
radioGroup=findViewById(R.id.radioGroup);
imageView=findViewById(R.id.imageView);
seekBar=findViewById(R.id.seekBar);
checkBoxyuwen =findViewById(R.id.checkBox);
checkBoxshuxue=findViewById(R.id.checkBox2);
checkBoxyingyu=findViewById(R.id.checkBox3);
ratingBar=findViewById(R.id.ratingBar); buttonleft.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
display.setText(R.string.button1);
}
});
buttonright.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
display.setText(R.string.button2);
}
}); aSwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean b) {
if(b) {
display.setText("开");
}
else{
display.setText("关");
}
}
});
button3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String s=editText.getText().toString();
if(TextUtils.isEmpty(s)){
s="0";
}
progressBar.setProgress(Integer.valueOf(s));
display.setText(s);
}
}); radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int i) {
if(i==R.id.radioButton){
imageView.setImageResource(R.drawable.ic_launcher_background);
} else {
imageView.setImageResource(R.drawable.ic_launcher_foreground);
}
}
}); seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int i, boolean fromUser) {
display.setText(String.valueOf(i));
} @Override
public void onStartTrackingTouch(SeekBar seekBar) { } @Override
public void onStopTrackingTouch(SeekBar seekBar) { }
}); checkBoxyuwen.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(isChecked){
yuwen="语文";
}else {
yuwen="";
}
display.setText(yuwen+shuxue+yingyu );
}
}); checkBoxshuxue.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(isChecked){
shuxue="数学";
}else{
shuxue="";
}
display.setText(yuwen+shuxue+yingyu );
}
}); checkBoxyingyu.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(isChecked){
yingyu="英语";
}else{
yingyu="";
}
display.setText(yuwen+shuxue+yingyu );
}
});
ratingBar.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener() {
@Override
public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) {
Toast.makeText(getApplicationContext(),String.valueOf(rating)+"星的评价!",Toast.LENGTH_SHORT).show();
}
});
}
}
首先确定变量,然后与前台的控件相互关联,然后在代码的帮助下实现操作
2.6 UI控件与后台联系实现的更多相关文章
- C# 后台线程更新UI控件
/********************************************************************************* * C# 后台线程更新UI控件 * ...
- WinForm/Silverlight多线程编程中如何更新UI控件的值
单线程的winfom程序中,设置一个控件的值是很easy的事情,直接 this.TextBox1.value = "Hello World!";就搞定了,但是如果在一个新线程中这么 ...
- ASP.NET开发中主要的字符验证方法-JS验证、正则表达式、验证控件、后台验证
ASP.NET开发中主要的字符验证方法-JS验证.正则表达式.验证控件.后台验证 2012年03月19日 星期一 下午 8:53 在ASP.NET开发中主要的验证方法收藏 <1>使用JS验 ...
- C#学习之在辅助线程中修改UI控件----invoke方法
Invoke and BeginInvoke 转载地址:http://www.cnblogs.com/worldreason/archive/2008/06/09/1216127.html 在Invo ...
- 面试题汇总--数据储存/应用程序/UI控件/客户端的安全性与框架处理。。。
一 数据储存 1.如果后期需要增加数据库中的字段怎么实现,如果不使用 CoreData 呢?编写 SQL 语句来操作原来表中的字段1)增加表字段ALTER TABLE 表名 ADD COLUMN 字 ...
- 理解SynchronizationContext,如何在Winform里面跨线程访问UI控件
SynchronizationContext 类是一个基类,可提供不带同步的自由线程上下文. 此类实现的同步模型的目的是使公共语言运行库内部的异步/同步操作能够针对不同的异步模型采取正确的行为.此模型 ...
- 线程池内的异步线程创建UI控件,造成UI线程卡死无响应的问题分析
winform应用在使用一段时间后,切换到其他系统或者打开word.excel文档,再切换回winform应用时,系统有时出现不响应的现象.有时在锁屏后恢复桌面及应用时也发生此问题. 经微软支持确认, ...
- Swift UI控件详细介绍(上)
UI控件 首先介绍一下AppDelegate.swift@UIApplicationMain 调用了OC中的UIApplicationMain函数:UIApplicationMain是iOS应用程序的 ...
- vue-autoui自匹配webapi的UI控件
vue-autoui 是一款基于vue和element扩展的一个自动化UI控件,它主要提供两个控件封装分别是auto-form和auto-grid; 通过这两个控件可以完成大多数的信息输入和查询输出的 ...
随机推荐
- 织梦 dede runphp=yes SQL语句操作
个人实例dede:channelartlist 下循环出 channel 栏目 中的 文章 {dede:sql sql='select * from dede_arctype where reid = ...
- k8s node断电重启
kubernetes断电重启 导致部分pod无法删除 dashboard上处于黄色 kubectl get处于terminate 状态 kubectl delete报错: An error occur ...
- Jmeter测试入门——带token的http请求
安装 官网下载地址:http://jmeter.apache.org/download_jmeter.cgi 下载完成后解压zip包 启动JMeter,双击JMeter解压路径bin下面的jmeter ...
- HiBench成长笔记——(9) 分析源码monitor.py
monitor.py 是主监控程序,将监控数据写入日志,并统计监控数据生成HTML统计展示页面: #!/usr/bin/env python2 # Licensed to the Apache Sof ...
- Centos上安装FastDFS
更新yum源 cd /etc/yum.repos.d wget http://mirrors.aliyun.com/repo/Centos-7.repo yum update 安装gcc(编译时需要) ...
- MySQL 中的数据库名称、数据表名称、字段名称
如何查询Oracle,Sql Server,MySQL 中的数据库名称.数据表名称.字段名称 分类: Database2012-09-24 22:16 7034人阅读 评论(0) 收藏 举报 数据库s ...
- 图形与动画在Android中的实现
public class MyView extends View{ Bitmap myBitmap; Paint paint; public MyView(Context context, Attri ...
- android侧滑效果(引用官方网站提供的API文件)
原文地址:http://www.cnblogs.com/android100/p/android-SlidingMenu.html 在新浪微博和唱吧里面都有看到android的侧滑效果,于是想要学习一 ...
- Metasploit学习笔记——Web应用渗透技术
1.命令注入实例分析 对定V公司网站博客系统扫描可以发现,它们安装了zingiri-web-shop这个含有命令注入漏洞的插件,到www.exploit-db.com搜索,可以看到2011.11.13 ...
- PHP: isset与empty的区别
PHP的isset()函数 一般用来检测变量是否设置 功能:检测变量是否设置 返回值: 若变量不存在则返回 FALSE 若变量存在且其值为NULL,也返回 FALSE 若变量存在且值不为NULL,则返 ...