AndroidUI基本控件与事件处理
Android应用开发中的常用技术
Android应用开发中的常用技术随着智能手机的普及,Android应用开发也成为了一个越来越重要的开发领域。
在Android应用开发中,有一些常用的技术,下面将会详细介绍这些技术并分为以下几个类别:UI设计、数据库、网络通信和开发框架。
一、UI设计在Android应用开发中,UI设计是最基础、也是最重要的环节之一,因为它关系到用户体验和用户对应用的第一印象。
以下是几个常用的UI设计技术:1. XML布局:Android应用的界面布局一般使用XML文件来实现,XML 可以很容易地描述一个UI界面中各种视图的排列方式和事件的处理。
2. Material Design:Material Design 是Google官方推出的一种UI 设计风格,它非常重视用户体验,注重美观和易用性,并提供了一系列的设计规范和样式。
3. 控件定制化:在开发中,有时候我们需要一些非标准的控件或者特殊的UI效果,这时就需要对控件进行定制化开发,适应应用的需求。
二、数据库在Android应用的开发过程中,数据持久化和管理是很重要的一部分,以下是一些常用的数据库技术:1. SQLite:SQLite是Android平台默认提供的一种数据库,它是一种轻量级的嵌入式数据库,支持事务和常用的SQL语句。
2. SharedPreferences:SharedPreferences是Android系统提供的一种轻量级数据存储方式,它只能存储一些基本类型数据,如字符串、整数等,但具有快速访问和易用性的特点。
3. ORM框架:ORM(Object-Relational Mapping)框架可以将数据映射到Java对象上,使得开发人员不用直接与SQL语句打交道,使得数据管理更加方便。
三、网络通信在现代应用开发中,网络通信是必不可少的一部分,以下是一些常用的网络通信技术:1. HttpURLConnection:HttpURLConnection是Android系统提供的一种HTTP通信方式,它可以发送HTTP请求并接收服务器返回的数据,当然我们也可以对它进行拓展。
安卓控件的操作实验报告
一、实验目的通过本次实验,掌握安卓常用控件的基本属性、方法和事件处理,熟悉这些控件在实际应用中的使用方法,提高对安卓界面设计的理解和应用能力。
二、实验环境1. 操作系统:Windows 102. 开发工具:Android Studio3.5.33. 手机型号:华为Mate 20三、实验内容本次实验主要涉及以下安卓常用控件:1. TextView2. EditText3. Button4. ImageView5. RadioButton6. CheckBox7. Spinner8. ListView四、实验步骤1. 创建一个新的Android项目,命名为“ControlOperation”。
2. 在布局文件activity_main.xml中添加以下控件:```xml<TextViewandroid:id="@+id/textView1"android:layout_width="wrap_content"android:layout_height="wrap_content" android:text="Hello World!"android:layout_marginTop="20dp" /><EditTextandroid:id="@+id/editText1"android:layout_width="match_parent"android:layout_height="wrap_content" android:hint="Enter your name" /><Buttonandroid:id="@+id/button1"android:layout_width="wrap_content"android:layout_height="wrap_content" android:text="Click Me!" /><ImageViewandroid:id="@+id/imageView1"android:layout_width="wrap_content"android:layout_height="wrap_content" android:src="@drawable/ic_launcher" /> <RadioButtonandroid:id="@+id/radioButton1"android:layout_width="wrap_content"android:layout_height="wrap_content" android:text="Male" /><CheckBoxandroid:id="@+id/checkbox1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Subscribe to newsletter" /><Spinnerandroid:id="@+id/spinner1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:entries="@array/countries" /><ListViewandroid:id="@+id/listView1"android:layout_width="match_parent"android:layout_height="wrap_content" />```3. 在strings.xml文件中添加以下字符串资源:```xml<string name="app_name">Control Operation</string> <string name="enter_name">Enter your name</string> <string name="click_me">Click Me!</string><string-array name="countries"><item>China</item><item>USA</item><item>Japan</item></string-array>```4. 在MainActivity.java文件中添加以下代码:```javaimport android.os.Bundle;import android.view.View;import android.widget.ArrayAdapter;import android.widget.Button;import android.widget.EditText;import android.widget.ImageView;import android.widget.RadioButton;import android.widget.RadioGroup;import android.widget.ScrollView;import android.widget.TextView;import android.widget.CheckBox;import android.widget.Spinner;import android.widget.ListView;import android.widget.ArrayAdapter;import android.widget.Toast;import androidx.appcompat.app.AppCompatActivity; public class MainActivity extends AppCompatActivity { private TextView textView1;private EditText editText1;private Button button1;private ImageView imageView1;private RadioButton radioButton1;private CheckBox checkBox1;private Spinner spinner1;private ListView listView1;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.activity_main);textView1 = findViewById(R.id.textView1);editText1 = findViewById(R.id.editText1);button1 = findViewById(R.id.button1);imageView1 = findViewById(R.id.imageView1);radioButton1 = findViewById(R.id.radioButton1);checkBox1 = findViewById(R.id.checkbox1);spinner1 = findViewById(R.id.spinner1);listView1 = findViewById(R.id.listView1);ArrayAdapter<CharSequence> adapter =ArrayAdapter.createFromResource(this,R.array.countries, yout.simple_spinner_item);adapter.setDropDownViewResource(yout.simple_spinner_dropdown _item);spinner1.setAdapter(adapter);button1.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {String name = editText1.getText().toString();Toast.makeText(MainActivity.this, "Hello " + name, Toast.LENGTH_SHORT).show();}});radioButton1.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Toast.makeText(MainActivity.this, "You selected Male", Toast.LENGTH_SHORT).show();}});checkBox1.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {if (checkBox1.isChecked()) {Toast.makeText(MainActivity.this, "You subscribed to the newsletter", Toast.LENGTH_SHORT).show();} else {Toast.makeText(MainActivity.this, "You unsubscribed from the newsletter", Toast.LENGTH_SHORT).show();}}});}}```5. 运行程序,观察效果。
第2章 Android基础界面设计-控件
2021/10/19
第2章 Android基础界面设计
19
Button点击事件的处理方式
在XML文件中附加事件处理方法, 在Activity类实现这个事件处理方
即设置onClick属性:
法:
android:onClick="showToast"
public void showToast(View view) { String msg = "Hello Toast!"; Toast.makeText(this, msg, duration)
2021/10/19
ቤተ መጻሕፍቲ ባይዱ功能描述
输入类型设置 textPassword:输入文本框中的内容显示为"." phone:设置输入文本框中的内容只能是数字 设置允许输入哪些字符
设置编辑框内容为空时,显示的提示信息
控件中内容为空时显示的提示文本信息的颜色
设置控件的宽度为N个字符的宽度 监控软键盘的事件,如actionNext表示点击软键盘上的下一项会跳到 该组件 设置文本的最小行数
2021/10/19
功能描述
设置文本内容的位置,可以用"|"指定多个值 设置文本最大长度,超出此长度的文本不显示 设置文本的字符个数 设置文本的行数,超出此行数的文本不显示 设置文本的最大行数,超出此行数的文本不显示。 设置当文本超出TextView规定的范围的显示方式。 在文本的顶部显示图像 设置文本的行间距 设置文本样式,如:bold(粗体)、italic(斜体)、normal(正 常)
2021/10/19
第2章 Android基础界面设计
4
2.3 Android基本控件
https:///guide/topics/ui/look-and-feel/autosizing-textview https:///guide/topics/ui/controls/button
Android应用开发实践教程 第2章 用户界面设计
06 2.6 项目实战:“移动商城”(一) 07 2.7 相关阅读:ButterKnife 的使用 08 2.8 本章小结
本章导读
本章主要对 Android 前台手机界面布局方法以 及常用组件进行阐述。主要知识点有: (1)视图组件和容器组件; (2)控制UI界面的三种方式;
本章导读
(3)基本 UI 组件(包括 TextView、EditText、Button、 ImageView、ProgressBar、ScrollView、Toast、布局管理器 等); (4)高级 UI 组件(包括列表类组件、对话框、菜单、标签 栏等); (5)Handler 消息传递机制。
03 2.3 基本 UI 组件
2.3.3 ProgressBar、ScrollView、Toast(消息提示)
ProgressBar 是 UI 控件中用于显示某个时刻操作完成的进 度控件。该控件应随时间、操作完成度而实时的变化,从 而达到提醒用户任务进度的目的。 ProgressBar 类声明如下: public class ProgressBar extends View
03 2.3 基本 UI 组件
2.3.3 ProgressBar、ScrollView、Toast(消息提示)
Toast 类声明如下: public class Toast extends Object Toast可以通过 makeText() 方法创建Toast对象并设置相关 属性,并调用 show() 方法显示提示。例如以下: Toast.makeText(MainActivity.this, "提示的内容", Toast.LENGTH_LONG).show();
04 2.4 高级 UI 组件
Android 事件处理机制
Android 事件处理机制Android 作为一款主流的移动操作系统,拥有强大的事件处理机制,使得开发者可以方便地对用户的操作进行响应和处理。
本文将介绍Android的事件处理机制及其相关的内容。
一、概述Android事件处理机制主要用于检测和响应用户在界面上的各种操作,包括点击、滑动、长按等。
通过灵活运用Android事件处理机制,开发者可以实现丰富多样的用户交互效果,提升应用的用户体验。
二、事件传递1. 事件传递的核心概念- 事件传递分为三个阶段:事件分发、事件拦截、事件处理。
- 事件的传递是从上至下的过程,即从Activity到ViewGroup,再到最终的View。
2. 事件分发- 事件首先会被分发给当前界面的顶层View的dispatchTouchEvent()方法进行处理。
- 顶层View会根据具体的触摸事件类型(DOWN、MOVE、UP、CANCEL)进行相应的处理。
3. 事件拦截- 如果顶层View在处理事件后,认为自己不能完全处理该事件,则会将事件交给子View处理,通过调用子View的dispatchTouchEvent()方法传递事件给子View。
- 子View可以通过重写onInterceptTouchEvent()方法来决定是否拦截事件。
4. 事件处理- 最终,事件会传递到具体的View上,并通过重写onTouchEvent()方法来实现事件的处理。
- View可以根据具体的事件类型(点击、滑动、长按等)执行相应的操作。
三、事件分发机制1. 事件分发的层级关系- Android中的事件分发机制是基于层级关系的,即不同的ViewGroup和View之间存在不同的事件分发机制。
- ViewGroup和View都重写了dispatchTouchEvent()方法,用于对事件进行分发。
2. ViewGroup中的事件分发- ViewGroup会根据具体的事件类型,将事件传递给自己的子View。
安卓UI控件详细笔记
android:focusable="true" android:focusableInTouchMode="true"
android:singleLine="true"
16、android:maxLength:限制显示的文本长度,超出部分不显示。 17、android:lines:设置文本的行数,设置两行就显示两行,即使第二行没有数据也显示。 18、android:singleLine 设置文本是否是单行显示(默认false, 超出部分会换行)。如果设置为true,则超出部 分不显示, 只显示省略号...
2. android:inputType="textPersonName"
3. android:inputType="textPassword"
文本密码
4. android:inputType="numberPassword" 只能输入数字的密码
5. android:inputType="textEmailAddress" 电邮地址
Android提供了非常良好的UI事件处理机制。View是绘制UI的类,每个View对象都可以向Android注册事件监听器。每个事件监听器都包含一个回调 方法(callback method),这个回调方法主要的工作就是回应或处理用户的操作。
(二)、Android UI事件处理中基于监听和回调的事件处理机制(event listener):
7、 android:ems
设置TextView的宽度为N个字符的宽度
第四章Android用户界面程序设计
4.3.4 RadioButton和RadioGroup控件
• RadioGroup是单选按钮组,是一个允许容纳多个 RadioButton的容器。在没有RadioGroup的情况下, RadioButton可以分别被选中;当多个RadioButton同一个 RadioGroup按钮组中,RadioButton只允许选择其中之一。 RadioButton和RadioGroup的关系如下:
类名 DigitalClock AnalogClock ProgessBar RatingBar SeekBar GridView LsitView ScrollView
功能描述 数字时钟 模拟时钟 进度条 评分条 搜索条 网格视图 列表视图 滚动视图
4.2 界面布局
• Android中提供了两种创建布局的方式:
XML 属性
对应方法
android:shrinkColumns setShrinkAllColumns(boolean)
android:stretchColumns setStretchAllColumns(boolean) android:collapseColumns setColumnCollapsed(int,boolean)
4.3 Widget简单组件
属性名称 android:id android:layout_height android:layout_width android:autoLink android:autoText android:bufferType android:capitalize android:cursorVisible android:digits android:inputType
• (2)在RadioButton单选按钮组中,只允许选中一个;而 在CheckBox复选框组中,允许同时选中多个。
《Android软件开发教程-第3版》 教学大纲、授课计划
课程名称(英文):Android Application Design
课程性质:选修课
学分:4.5学分
总学时:72学时
理论学时:36学时
先修课程:Java程序设计
上机:36学时
一、课程的性质及目的
本课程为计算机科学与技术、软件工程、物联网工程等专业的专业选修课,是一门实践
9.4基于Content Provider的数据存取
[重点]:更新和查询数据表 [难点]:更新和查询数据表
[思政元素]:在练习的程序实例中加入时政内容
10.多媒体和网络应用(2学时) 10.1 多媒体应用开发
10.2 Web应用开发
10.3地图应用开发
[重点]:基于MediaPlayer的够安装和配置Android开发环境。
2.能够利用常见的布局方式构建用户界面。
3.能够利用常见的View元素、对话框、菜单、Intent、Service编写应用于Android移动 设备的APP
4.能够利用SQLite数据库访问持久化存储的数据。
5.能够进行手机和手持终端设备的应用软件、移动互联应用等的设计、开发、测试、维
[重点]:Button、EditText、RadioButton、CheckBox、ListView
[难点]:Android中的事件处理机制
[思政元素]:在练习的程序实例中加入时政内容
5.对话框、菜单和状态栏通知(4学时)
5.1对话框
5.2菜单
5.3状态栏通知 [重点]:对话框、菜单
[难点]:Notification的定义和控制 [思政元素]:在练习的程序实例中加入时政内容
性很强的课程。通过本课程的学习,学生可以掌握Android系统的基本理论知识,掌握移动
第5章 Android——UI常用基本控件
android:orientation
在线性布局中使用gravity属性来设置控件的对齐方式。gravity 可取的值及说明方法如表5-2所示。
5.1.1线性布局LinearLayout 表5-2
属性值 top bottom left right 说明 不改变控件大小,对齐到容器顶部 不改变控件大小,对齐到容器底部 不改变控件大小,对齐到容器左侧 不改变控件大小,对齐到容器右侧
android:text android:textColor android:textSize android:typeface
对应方法 setAutoLint(int) setGravity(int) setHeight(int) setMinHeight(int) setMaxHeight(int) setWidth(int) setMinWidth(int) setMaxWidth(int) setHint(int)
5.2 UI界面控件
5.2.1TextView与EditText 文本控件主要包括TextView控件和EditText控件。 其中TextView控件继承自View类,其主要功能是向用户显 示文本内容,同时可选择性地让用户编辑文本。从功能上来说, TextView就是一个完整的文本编辑器,只不过其本身被设置为 不允许编辑,其子类EditText被设置为允许用户对内容进行编 辑。 TextView提供了大量XML属性,这些XML属性大部分既可 适用于TextView,又可适用于EditText,但有少量XML只能适 用于其一,表5-7显示了TextView支持的XML属性及相关方法 的说明。
移动平台UI交互设计与开发
第5章 Android——UI常用基本控件
知识技能目标:
《Andriod事件处理》课件
键盘事件是Android事件处理中重要的一部分,在输入法、游戏等领域得到了广泛的应用。
onKeyDown
用户在按下某个键时触发,可 以监听控制键,如Backspace和 Enter键。
onKeyUp
用户在释放某个键时触发,可 以监听控制键,如Backspace和 Enter键。
onKeyLong Press
最基本的滑动事件
手势事件
手势事件是Android事件处理中的高级技术,了解其原理能够实现更多的用户交互体验。
GestureDetector
实现手势的检测和处理,减少代码冗余。
GestureDetector.O nGestureListener
处理手势事件,为用户提供多元化的交互效果。
键盘事件处理
事件分发
事件分发有明确的层级关系,通过onTouchEvent 方法和GestureDetector类实现拦截和消费。
常见的事件类型
了解常见事件类型,可以提升对用户交互的响应能力,提高应用的用户体验。 • 触摸事件 • 滑动事件 • 手势事件 • 键盘事件
触摸事件
触摸事件是最基本的Android事件,了解其机制可以为UI设计提供更多思路。
用户长按某个键时触发。
总结
Android事件处理是与用户交互的重要部分,其流程包括事件传递、分发、响应三个步骤。在Android应用的开 发中,我们需要深入了解事件处理的机制、结合使用常见的事件类型和手势事件,提升Android应用的用户体 验。
Android事件处理
# Android事件处理交 互的重要部分。
什么是Android事件
Android事件是用户与设备之间的交互,包括手势、触摸和键盘。了解Android事件处理对提升用户体验至关重 要。
实验1——安装环境及UI
实验指导(一)——搭建平台和HelloWorld——UI设计:布局、控件、事件处理实验一:搭建平台和HelloWorld实验目的本次实验的目的是让大家熟悉搭建智能手机开发平台的过程,了解Andorid开发项目的基本文件目录结构,并实现HelloWorld小例程。
实验要求1.完成Android开发平台的搭建及相关配置2.创建项目并熟悉文件目录结构3.实现例程HelloWorld实验内容一、安装并配置Java JDK1.下载安装JDK,如安装目录为:C:\Program Files (x86)\Java\jdk1.6.0_18。
2.配置JDK:XP:右键“我的电脑”→“属性”→“高级”→“环境变量”WIN7:右键“我的电脑”→“高级系统设置”→“环境变量”新建系统变量:JAVA_HOME,C:\Program Files (x86)\Java\jdk1.6.0_18(JDK安装目录)。
PATH,%JAVA_HOME%\bin;%JAVA_HOME%\jr\bin。
CLASSPATH,.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar(前面的.;一定要加上)配置完成后在CMD中输入java –version和javac –version,能看到对应的JDK版本即配置成功,如下图所示。
二、安装MyEclipse或Eclipse安装平台。
三、安装Android SDK1.下载Android SDK地址:/android/android-sdk_r05-windows.zip。
注意SDK的版本为r05,对应的ADT版本应为10.0.0,SDK和ADT需要对应才能正常运行程序。
2.安装SDK安装过程可能碰到的问题1:弹出窗口“Failed to fetch url…”需要如下设置:关闭该窗口→点击“cancel”→在左侧选择“Settings”→选中“Force https://...”→点击“Save and Apply”→重新运行安装文件。
控件的属性事件及方法
控件的属性事件及方法控件是在应用程序中用于显示和接收用户输入的元素。
每个控件都有其自己的属性、事件和方法,可以通过这些属性、事件和方法来对控件进行操作和处理。
本文将详细介绍控件的属性、事件和方法。
1.属性:属性是控件的特征和状态,可以通过设置属性来改变控件的外观和行为。
常见的控件属性包括:- Visible:控件是否可见。
当Visible属性设置为True时,控件将在应用程序界面中显示;当设置为False时,控件将隐藏。
- Caption:控件的标题或文本。
可以通过设置Caption属性来改变控件上显示的文字内容。
- Enabled:控件是否可用。
当Enabled属性设置为True时,表示控件可以接受用户的输入和操作;当设置为False时,控件将不响应用户的操作。
- Width和Height:控件的宽度和高度。
可以通过设置Width和Height属性来改变控件的尺寸大小。
- Name:控件的标识符。
通过设置Name属性可以为控件分配一个唯一的名称,以便在代码中引用该控件。
2.事件:事件是在特定的操作或条件发生时自动触发的动作。
可以通过响应事件来处理用户的操作和改变控件的状态。
常见的控件事件包括:- Click:鼠标单击事件。
当用户点击控件时,会触发Click事件,可以在该事件中编写相应的处理代码。
- KeyDown和KeyUp:键盘按下和释放事件。
当用户按下或释放键盘上的按键时,会触发相应的KeyDown和KeyUp事件,可以通过处理这些事件来响应键盘输入。
- MouseEnter和MouseLeave:鼠标进入和离开事件。
当用户将鼠标移动到控件上时,会触发MouseEnter事件;当鼠标移出控件时,会触发MouseLeave事件,可以在这些事件中编写相应的处理代码。
3.方法:方法是控件可以执行的操作。
通过调用方法,可以实现对控件的一些特定操作。
常见的控件方法包括:- Show和Hide:显示和隐藏控件。
android开发中framelayout布局与事件处理有关的的常见问题标准版文档
Android开的发Tou中chF事ram件e传La递yo到ut布Ac局tiv与ity事顶件层处的理De有co关rV的iew常(一见个问F题ram| 问eLa题yo解ut决)之方后案,会通过ViewGroup一层层往视图树的上面传递,最终将事件传递给实际接收的View。 首先建立起一个概念:一个MotionEvent只允许有一个Action(动作),而且这个Action会包含触发这次Action的触碰点信息,对于MOVE操作来说,一定是当前所有触碰点都在动。 首如先果建 两立个起布一局个的概父念容:器一是个同M一o个tio,n它Eve在nt把只事允件许传有递一给个上Ac层tio布n(局动的作同),时而肯且定这也个传A递cti给on了会下包层含的触子发布这局次,Ac所tio以n的如触果碰不点想信下息层,的对控于件M接O收VE这操个作事来件说,,需一要定对是下当层前组所件有进触行碰以点下都特在别动处。理:
然后在需要响应的时候设置为true! 以An下dro是id一开些发重中要Fr的am方eL法ay。out布局与事件处理有关的常见问题 | 问题解决方案
给从VonieTwou设ch置到的一o个nToMuocthio事n件Eve处nt在,一怎个样较才高能的拿优到先多级个,触如碰果点o的nT信ou息ch?执行返回true,那么就不会去走view的onTouchEvent,这就是为什么onTouch中返回true,view的点击相关事件不会被处理。 这北种京情 信况息下职,业也技可术以学使院用| 范set美En英abled(false)来屏蔽,最好把不需要响应事件子控件都调用这个方法进行设置。 布局与事件处理有关的常见问题 Android开发中FrameLayout布局与事件处理有关的常见问题 | 问题解决方案 问题解决方案2(cont.
第4章 Android中的事件处理
Android提供了以下几种基于监听接口的事件处理模型: 1)OnClickListener接口:单击事件。 2)OnLongClickListener接口:长按事件。 3)OnFocusChangeListener接口:焦点改变事件。 4)OnKeyListener接口:键盘事件。 5)OnTouchListener接口:触摸事件。 6)OnCreateContextMenuListener接口:上下文菜单事件。
4.2单击事件OnClickListener
实例4_1:单击事件实例 编程实现:手机界面显示3个组件EditText,Button, TextView,单击Button时会在手机上显示输入的信息。
4.3长按事件OnLongClickListener
在Android中提供了长按事件的处理操作,长按事件只有在 触 发 2 秒 之 后 才 会 有 反 应 , 长 按 事 件 使 用 View.OnLongClickListener接口进行事件的处理操作。 此接口定义如下: public static interface View.OnLongClickListener{ public boolean onLongClick(View v) ; } 当长按事件触发之后自动使用该接口中的 public boolean onLongClick(View v)方法进行事件处理。
3)实现onTouchEvent方法。 例如:public boolean onTouch (View v, MotionEvent event) {……
4.6触摸事件onTouchEvent
实例4_6:触摸事件实例 在屏幕任意空白处单击、触摸,会显示出触摸位置的坐标。
4.7 选择改变事件OnCheckedChange
android常用控件属性方法事件说明
1,TextView用于在界面上显示文字,内容不可编辑,继承View2,EditText是可供用户编辑内容的文本框。
继承TextView,可重用TextView定义的属性3,按钮控件Button,继承TextView,ImageButton继承ImageViewButton可根据用户的操作动态切换图片,需定义drawable资源<selector><?xml version="1.0" encoding="utf-8"?><selector xmlns:android="/apk/res/android"><item android:drawable="@drawable/app_icon" android:state_pressed="true"/> <item android:drawable="@drawable/app_notes"android:state_pressed="false"/> </selector>4,单选按钮RadioButton继承至Button按钮。
可通过android:checked属性指定是否选中。
一组RadioButton只能选择其一,因此它需要与RadioGroup一起使用。
5,复选框按钮CheckBox。
继承至Button按钮。
可通过android:checked属性指定是否选中7,AnalogClock继承View,重写了onDraw()方法。
显示模拟时钟,不会显示当前的秒数。
DigitalClock继承TextView.显示数字时钟,会显示当前秒数。
8,图片显示控件ImageView,继承View,任何Drawable对象都可以用它来显示,注意src 属性和background属性的区别9,自动完成AutoCompleteTextView继承至EditText,当用户输入信息后,会显示下拉菜单10,MultiAutoCompleteTextView可支持选择多个值,分别用分隔符分开,并且在每个值选中的时候再次输入值时会自动去匹配,它与AutoCompleteTextView的区别是AutoCompleteTextView一个文本框只能输入一个值,而MultiAutoCompleteTextView可以输入多个值,中间的分隔符在代码中设置11,日期时间控件DatePicker/TimePicker,继承至FrameLayout,DatePicker用于选择日期,TimePicker用于选择时间12,进度条ProgressBar用于向用户显示某个耗时操作完成的百分比,可通过style属性为其指定风格,setProgress(int) 设置进度完成的百分比,incrementProgressBy(int) 设置增量/减量13,拖动条seekBar,继承AbsSeekBar,通常用于对系统的某些参数进行调节,允许改变滑块的外观,Android:thumb 用来指定一个Drawable对象,OnSeekBarChangeListener可处理滑动事件14,星级评分条RatingBar,继承AbsSeekBar,OnRatingBarChangeListener可处理评分事件15,代表应用程序的菜单Menu,Android中的菜单需要用户单击手机上的“MENU”按键时才会显示。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《Android基础应用》
AndroidUI基本控件与事件处理
⏹本章任务
⏹使用Android开发本息计算器程序
⏹使用Android开发华氏-摄氏温度转换器
⏹本章目标
⏹熟悉掌握本章基本控件的使用
⏹熟练掌握Android常用事件
1.Android基本控件
Android应用开发的一项内容就是用户界面的开发,Android提供了大量功能丰富的UI组件,大部分放在android.widget包及其子包android.view包及其子包
在Android当中View类是最基本的一个UI类,基本上所有的高级UI组件都是继承View类而实现的。
如Button(按钮),list(列表),EditText(编辑框),RadioButton(多选按钮),Checkbox(选择框)等都是View类
在Android中,我们可以在Xml文件中使用UI组件也可以在java文件中创建UI组件官方建议采用xml方式,这样的话能够实现界面和代码分离
1.1TextView和EditText
TextView是一种用于显示字符串的控件
EditText则是用来输入和编辑字符串的控件,EditText是一个具有编辑功能的TextView
TextView和EditText基本属性
●android:id设置ID,通过编码可以找到这个组件
●android:layout_width设置在屏幕上的宽度
●android:layout_height设置在屏幕上的高度
fill_parent强制性地使构件扩展,以填充布局单元内尽可能多的空间
wrap_content强制性地使视图扩展以显示全部内容
●android:text设置显示的文本信息
●android:textColor设置文本颜色
●android:textSize设置文本尺寸
示例的现实结果
1.2Button和ImageButton
Button是一种按钮控件,用户能够在该控件上点击,并后引发相应的事件处理函数ImageButton用以实现能够显示图像功能的控件按钮
示例
示例的现实结果
1.3CheckBox和RadioButton
CheckBox是一个同时可以选择多个选项的控件
RadioButton则是仅可以选择一个选项的控件
示例
1.4 开发本息计算器界面
需求说明
银行提供整存整取定期储蓄业务,年利率为(一年 2.25%,两年 2.7%,三年
3.24%,五年3.6%),要求输入本金数目和存款年限,计算到期取款时银行应支付本息
开发思路
开发页面main.xml
按效果图进行布局
示例
练习——开发本息计算器界面
2.Android事件处理
事件处理的概念
任何应用最终都是要面对用户的,经常处理的是用户的动作,也就是说要为用户的动作提供响应,这种为为用户动作提供响应的机制就是事件处理
Android提供了强大的事件处理机制
基于监听的事件处理
●主要就是为Android界面组件绑定特定的事件监听器
基于回调的时间处理
●主要做法是重写Android组件特定的回调函数,Android大部分界面组件
都提供了事件响应的回调函数,我们只要重写它们就行
2.1基于监听的事件处理
这是更具“面向对象”性质的事件处理方式,与java中的AWT,Swing开发中的处理相同在监听器模型中,主要涉及三类对象
事件源Event Source:产生事件的来源,通常是各种组件,如按钮,窗口等
事件Event:事件封装了界面组件上发生的特定事件的具体信息,如果监听器需要获取界面组件上所发生事件的相关信息,一般通过事件Event对象来传递 事件监听器Event Listener:负责监听事件源发生的事件,并对不同的事件做相应的处理
基于监听器的事件处理机制是一种委派式Delegation的事件处理方式,事件源将整个事件委托给事件监听器,由监听器对事件进行响应处理。
这种处理方式将事件源和事件监听器分离,有利于提供程序的可维护性
使用步骤
●获取普通的界面组件(事件源),也就是被监听德对象
●实现事件监听类,该监听类是一个特殊的Java类,必须实现一个XXXListener
接口
●调用事件源的setXXXListener方法将事件监听器对象注册给普通组件(事件
源)
事件处理流程
●当事件源发生指定的事件时,Android会触发事件监听器,由事件监听器调
用相关的方法(事件处理器)来处理事件
实现方式一内部类形式
实现方式二匿名内部类形式
实现方式二匿名内部类形式二
实现方式三类本身作为监听器形式
实现方式四外部类作为监听器形式
2.2基于监听的事件处理几种实现方式的总结
内部类形式
●内部类是在类的内部定义的,可以自由访问外部类的组件
匿名内部类形式
●大部分时候事件处理类没有复用的价值,只是临时使用一次,所以这种方式
使用较为广泛
类本身作为监听器形式
●可以直接在GUI界面类中定义事件处理方法,形式简洁
●缺点会造成程序的混乱
外部类作为监听器形式
●较为少见
●不能自由访问GUI界面中的组件
●不利于程序的内聚性,事件处理通常属于特定的GUI
2.3基于回调的事件处理
与基于监听的委托式的事件处理相反,事件源与事件监听器是统一的,也就是说没有独立的事件监听器存在,当用户在组件上激发某个事件时,组件自己特定的方法将会处理该事件,通常通过重写Override组件类的事件处理函数实现事件的处理
例如View类:View类实现了KeyEvent.Callback接口中的一系列回调函数,因此,基于回调的事件处理机制通过自定义View来实现,自定义View时重写这些事件处理方法即可
几乎所有基于回调的事件处理函数都会返回一个boolean类型值,该返回值用于标识该处理函数是否能完全处理该事件
返回true,表明该函数已完全处理该事件,该事件不会传播出去
返回false,表明该函数未完全处理该事件,该事件会传播出去
Android的事件处理机制保证基于监听器的事件处理会优先于基于回调的事件处理被触发;
触摸屏事件,当用手或者用笔在触摸屏上做动作时发生
2.4 基于回调与基于监听的事件处理对比
基于监听器的事件模型符合单一职责原则,事件源和事件监听器分开实现; 基于回调的事件处理机制会更好的提高程序的内聚性
练习——事件处理
需求说明:
布局文件中放五个按钮
分别使用不同的监听方式为按钮生成处理事件
内部类形式
匿名内部类形式(2)
类本身作为监听器形式
外部类作为监听器形式
3.开发本息计算器
开发Activity
●为“提交”按钮绑定事件,输出本息总额;为“重置”按钮绑定事件,清空
各项内容
“重置”按钮绑定事件
提交”按钮绑定事件
练习——开发本息计算器
需求说明:
银行提供整存整取定期储蓄业务,编写一个程序,输入本金数目和存款年限,计算
到期取款时银行应支付的本息
练习——开发温度转换器
需求说明:
用户输入华氏温度或者摄氏温度,转换并输出另外一种温度值
F=9/5c+32, 或C=5/9(F-32)
总结
列举Android中的基本控件?
Android中的事件处理方式?
两种事件处理方式的对比。