ImageVerifierCode 换一换
格式:DOCX , 页数:30 ,大小:485.88KB ,
资源ID:26756683      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/26756683.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(事件驱动机制高级UI消息提示机制.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

事件驱动机制高级UI消息提示机制.docx

1、事件驱动机制高级UI消息提示机制Android基础三、 Android事件驱动机制 23.1 点击事件 23.1.1 点击事件四种书写方式 23.2 选择事件 43.2.1 复选事件 43.2.2 单选事件 53.2.3 下拉列表选择 53.3 长按与触屏事件 63.4 键盘事件 7四、 Android高级UI 84.1 ProgressBar 84.2 RatingBar 84.3 ToggleButton 94.4 ScrollView 104.5 ListView 10五、Android消息提示机制 125.1 Logcat日志猫 135.2 Toast瞬时提示 135.3 对话框 15

2、5.3.1 标准对话框 155.3.2 菜单式对话框 175.3.3 复选对话框 185.3.4 自定义对话框 215.3.5 对话框优化 22三、 Android事件驱动机制 一般,用户经常会通过界面与应用交互,Android框架一般采用事件驱动的形式与用户交互,那如何处理用户界面中触发的事件? 可以通过从用户交互的View设置事件监听器的方式来实现对事件的处理,一个事件监听器是View类中一个包含单一回调方法的接口。当注册了监听器的View发生了对应的监听事件时,Android框架就会回调相应的监听方法,实现与用户的交互 * 常见的用户事件 点击事件、选择事件、触屏事件、长按事件、按键事件

3、3.1 点击事件单击事件是事件机制中最常见的事件,通过对控件绑定View.OnClickListener 实现单击事件的监听3.1.1 点击事件四种书写方式 & 私有类实现方式 & 匿名内部类实现方式 & 布局中对控件添加android:onClick & Activity实现监听接口* 案例:对按钮按键监听对四个按钮实现监听,分别用四种不同的书写方式实现单击监听事件* 界面设计 * 代码实现 protected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView

4、(R.layout.activity_click_event); /1.通过内部类形式实现 inner(); /2.通过匿名内部类形式实现 anonymouns(); /4. Activity 实现监听接口方式 Button button=(Button)findViewById(R.id.activity); button.setOnClickListener(this); /* * 通过匿名内部类形式实现单击监听 */ private void anonymouns() Button button=(Button)findViewById(R.id.anonymouns); button.

5、setOnClickListener(new View.OnClickListener() Override public void onClick(View v) Toast.makeText(ClickEventActivity.this, 匿名内部类实现方式, Toast.LENGTH_SHORT).show(); ); /通过内部类的方式实现 private void inner() Button button=(Button)findViewById(R.id.inner); button.setOnClickListener(new MyListener(); /3.通过XML方式

6、实现 public void clickByXml(View v) Toast.makeText(ClickEventActivity.this, 布局中设置onClick属性实现方式, Toast.LENGTH_SHORT).show(); private class MyListener implements View.OnClickListener Override public void onClick(View v) Toast.makeText(ClickEventActivity.this, 内部类实现方式, Toast.LENGTH_SHORT).show(); /4、通过对A

7、ctivity实现单击监听接口实现方式 Override public void onClick(View v) Toast.makeText(ClickEventActivity.this, Activity实现监听接口方式, Toast.LENGTH_SHORT).show(); 3.2 选择事件3.2.1 复选事件 复选事件的监听接口:CompoundButton.OnCheckedChangeListener 复选控件CheckBox 有两种状态:选中与未选中状态,对复选控件* 案例:明密文切换 通过对CheckBox控件的复选监听,实现对EditText内容明密文切换 * 界面设计

8、* 代码实现/* * 通过对CheckBox复选监听实现明密文切换 */ private void checkBox() final EditText infoEdt=(EditText)findViewById(R.id.info_edt); CheckBox checkBox=(CheckBox)findViewById(R.id.checkbox); checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() Override public void onCheckedChanged(C

9、ompoundButton buttonView, boolean isChecked) if(isChecked) /把EditText隐藏的文本内容还原 infoEdt.setTransformationMethod(new HideReturnsTransformationMethod(); else /把EditText的内容用密码的方式隐藏起来 infoEdt.setTransformationMethod(new PasswordTransformationMethod(); ); 3.2.2 单选事件 单选事件的监听接口:RadioGroup.OnCheckedChangeLis

10、tener RadioButton与RadioGroup组合使用才能实现单选功能* 案例:选择字符集 通过对RadioButton控件的选择监听,实现对字符集的选择 * 界面设计 * 代码实现private void singleCheck() final TextView charSet=(TextView)findViewById(R.id.charSet); RadioGroup radioGroup=(RadioGroup)findViewById(R.id.radioGroup1); /对单选组添加选择监听事件 radioGroup.setOnCheckedChangeListene

11、r(new RadioGroup. OnCheckedChangeListener() /* 选择状态改变监听 * RadioGroup:单选组 * checkedId:被改变的控件的资源id */ public void onCheckedChanged(RadioGroup group, int checkedId) /通过通过findViewById找到所选择的RadioButton RadioButton radioButton=(RadioButton)findViewById(checkedId); charSet.setText(radioButton.getText().toS

12、tring(); ); 3.2.3 下拉列表选择 下拉事件的监听接口:AdapterView.OnItemSelectedListener* 案例:城市选择 通过对Spinner下拉列表监听,实现对城市的选择 * 界面设计 * 代码实现 private void spinner() /通过资源ID获得字符串数组 final String citys=getResources().getStringArray(R.array.city); Spinner spinner=(Spinner)findViewById(R.id.spinner); spinner.setPrompt(请选择城市);

13、spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() Override /* 下拉项选择监听 * AdapterView :下拉项的父控件 :Spinner * View :当前选择的Item项 * Position: 选择项的位置 * id :选择项的行号 */ public void onItemSelected(AdapterView parent, View view, int position, long id) Toast.makeText(context, citysposition,

14、 Toast.LENGTH_SHORT).show(); Override public void onNothingSelected(AdapterView arg0) ); 3.3 长按与触屏事件 长按事件监听接口:View.OnLongClickListener 触屏事件监听接口:View.OnTouchListener* 案例:长按图标设置手机桌面壁纸clearWallpaper :清除桌面壁纸setWallpaper(BitMap bitmap) :设置桌面壁纸设置壁纸要添加权限: * 代码实现 private void setWallPaper() ImageView image=

15、(ImageView)findViewById(R.id.image); /对图片添加触屏监听 image.setOnTouchListener(new View.OnTouchListener() Override public boolean onTouch(View v, MotionEvent event) System.out.println(触屏监听); return false; ); /对图片添加长按监听,实现设置手机壁纸的功能 image.setOnLongClickListener(new View.OnLongClickListener() Override public

16、 boolean onLongClick(View v) try /清除屏幕壁纸 clearWallpaper(); Bitmap bitmap=BitmapFactory .decodeResource(getResources(), R.drawable.ic_launcher); /设置壁纸 setWallpaper(bitmap); catch (IOException e) e.printStackTrace(); System.out.println(长按监听); return false; ); 3.4 键盘事件 Activity实现了KeyEvent.backcall接口 on

17、KeyDown(int keyCode, KeyEvent event) :当键按下去触发 onBackPress():当返回键按下去触发 ,Activity的方法 模拟器常见的按键: Back 返回键 Home 手机屏幕桌面 Ctrl+F11 切换模拟器横竖屏幕 F2 手机菜单 F3 电话面板 F8 手机网络开关 四、 Android高级UI4.1 ProgressBarProgressBar 进度条,常用于文件下载进度显示、系统初始化进度等,默认情况是没有进度值的(转圈圈)* 提示点: style=android:style/Widget.ProgressBar.Horizontal 样式

18、设置 setProgress(int) 设置当前进度值 getProgress() 得到当前进度值 setMax(int) 设置最大值案例:通过按钮设置进度条进度 * 界面设计: * 代码实现 /设置进度条的最大值 progressBar.setMax(10); addBtn.setOnClickListener(new OnClickListener() Override public void onClick(View v) /获得当前的进度值 int progress=progressBar.getProgress(); /设置进度值 progressBar.setProgress(pr

19、ogress+1); ); 4.2 RatingBarRatingBar 评分进度条,常用于对商品、用户的评价,比如满意度调查等* 提示点: setOnRatingBarChangeListener 设置监听器 setNumStars 设置星星的个数(设置总分) setStepSize 设置分数间隔 getRating 获得当前的分数值 setRating 设置当前的分数值案例:对欧冠精彩程度打分 * 界面设计: * 代码实现 /设置星星的数量 ratingBar.setNumStars(5); /设置步长值 ratingBar.setStepSize(0.5f); /添加评分控件值改变的监听

20、ratingBar.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener() /*ratingBar:评分控件 * rating :当前的值 * fromUser :是不是用户操作 */ public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) if(fromUser) Log.v(RatingBar from user, rating+); else Log.v(RatingBar no from user

21、, rating+); );4.3 ToggleButton ToggleButton:开关按钮,它是CompoundButton的子类,实现开与关的效果,比如蓝牙开关、wifi开关、声音开关等* 提示点: - 实现的监听接口:CompoundButton.OnCheckedChangeListener 该接口是监听开关按钮状态的改变 - toggle() :取反操作- xml属性设置 textOn: 表示状态为开的提示文本textOff: 表示状态为关的提示文本案例:设置声音开关 * 界面设计 * 代码实现 toggleButton.setOnCheckedChangeListener(ne

22、w CompoundButton.OnCheckedChangeListener() /*选择状态改变的监听 * * param buttonView:toggleButton * param isChecked:表示当前的开关按钮控件的状态 */ Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) Toast.makeText(AdvanceUIActivity.this, isChecked?声音开:声音关, Toast.LENGTH_LONG).show();/ toggl

23、eButton.toggle();/取反,每一次点击开关按钮会自动取反 );4.4 ScrollViewScrollView:滚屏视图,它是FrameLayout的子类,能够被用户滚动的布局容器,它只能拥有一个子控件,经常应用于一个垂直方向的线性布局中。ScrollView只支持垂直滚动,对于需要水平滚动,则用HorizontalScollView4.5 ListView ListView 列表框,常用控件,用来显示相同数据结构的批量数据,比如:从数据库获取的数据列表,从网络解析的批量结构数据,一般都会采用ListView展示数据,系统中的设置、未接来电、通信录等显示可采用ListView进行

24、展示 用ListView展示数据的四个步骤:列表项描述、初始化数据、适配器数据装配、设置适配器案例:在ListView中显示好友列表 * 界面设计与分析: * 代码实现 /引用ListView控件 ListView settingListView=(ListView)findViewById(R.id.setting_listView); /* * 1、描述列表项,设置列表项的布局 * 2、初始化数据 :ArrayList * 3、把数据通过数据适配器装配到ListView中 */ /初始化数据 ArrayListHashMap data=new ArrayListHashMap(); Has

25、hMap item=null; /生成假数据 for(int i=1;i12;i+) item=new HashMap(); item.put(icon, R.drawable.emoji_044+i);/添加的是图片资源的ID item.put(title, 设置+i); /向数组列表添加map data.add(item); /简单数据适配器 /* * context:上下文 * data:数据源 ArrayList * resource:列表项布局资源id * from:装配数据 -数据从哪里来 * to :装配数据-数据到那里去 */ String from=icon,title; i

26、nt to=R.id.icon,R.id.title; SimpleAdapter adapter=new SimpleAdapter(this, data, R.layout.setting_item, from, to); /装配数据到ListView中,对ListView设置数据适配器 settingListView.setAdapter(adapter); 五、Android消息提示机制在某些情况下,可能需要你去通知用户发生在你应用中的事件,其中一些事件需要用户响应,有的则不需要。Android框架通过消息机制很好的完成上述的需求。比如:- 当一个事件完成时(比如保存文件),需要显示一

27、个简短的消息来确认保存成功 - 假如应用正在后台运行,且需要用户注意,那么该应用需要创建一个通知以方便用户做出响应 - 假如用户要操作一个危险的操作,则应该创建一个对话框通知,再一次确认用户的操作常见的消息提示方式有: - Logcat(日志猫) - Toast(瞬时提示) - Dialog(对话框) -Notification(通知)5.1 Logcat日志猫 * 级别 :v、d、i、w、e 级别由低往高 - verbose :混淆的 ,所有信息都可以输出,级别最低 - debug :调试级别 - info:信息级别 - warning:警告级别 - error :错误级别 * 添加过滤器

28、按照Tag进行过滤 * System.out.println()与Log输出之间的区别 - System.out.println()输出的信息 等级是info级别,标记tag:System.out - System.out.print()输出信息 需要System.out.flush()刷缓存输出5.2 Toast瞬时提示 Toast通知是一种浮现在屏幕上层的消息提醒,它只填充消息所需要的空间,而当前正在运行的活动仍然保持其自身的可见性和交互性。这种通知自动淡入淡出且不接受交互事件 通过代码自定义Toast * 代码实现 / 通过代码的形式自定义Toast public void diyToast1(View v) / 声明一个Toast对象 Toast toast = new To

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1