事件
1 什么是事件处理?
事件处理就是针对用户的一些特定操作,进行相对应的回馈。
时间处理也是程序开发中的人机交互的一个非常重要的体现。事件处理中,事件源是事件的起始位。
一、事件处理步骤
2 事件的三要素:
注册事件监听器 //监听是否有动作
根据指定的事件中编写事件处理的代码 //有动作怎么办
在事件处理的代码中完成对事件的处理 //处理结果完成对事件的处理
二、常用的事件处理方法
1、public void setOnClickListener() 注册单击事件
Button btnlogin = (Button)findViewById(R.id.Button02); btnlogin.setOnClickListener(new OnClickListener() { public void onClick(View v) { if (etname.getText().toString().equals("111") && etname1.getText().toString().equals("111")){ wenben.setText("登录中..."); wenben.setVisibility(View.VISIBLE); }else{ wenben.setText("账号错误或者密码错误......"); wenben.setVisibility(View.VISIBLE); } } });
下拉框事件
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 sp.setOnItemSelectedListener(new OnItemSelectedListener() { 2 //一级联 3 public void onItemSelected(AdapterView<?> arg0, View view,int position, long id) { 4 TextView tView = (TextView) view; 5 string = tView.getText().toString(); 6 tv.setText(string); 7 if (string.equals("湖南")) { 8 hnAdapter 9 .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 10 sp2.setAdapter(hnAdapter); 11 } else if (string.equals("湖北")) { 12 hbAdapter 13 .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 14 sp2.setAdapter(hbAdapter); 15 } else if (string.equals("广东")) { 16 gdAdapter 17 .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 18 sp2.setAdapter(gdAdapter); 19 } 20 }
2、public void setOnlongClickListener() 注册长按事件
1 img = (ImageView) findViewById(R.id.img01); 2 tex = (TextView) findViewById(R.id.Text01); 3 img.setOnLongClickListener(new OnLongClickListener() { 4 public boolean onLongClick(View v) { 5 try { 6 long1.this.clearWallpaper();//清除背景图片 7 long1.this.setWallpaper(long1.this.img.getResources() 8 .openRawResource(R.drawable.feng01));//加载新的图片到壁纸 9 long1.this.tex.setText("手机桌面更改成功。"); 10 } catch (IOException e) { 11 long1.this.tex.setText("手机桌面更改失败。"); 12 } 13 return true;//事件的套用 14 } 15 });
注意:<!-- 给应用授权:改变壁纸的权限 -->
<uses-permission android:name="android.permission.SET_WALLPAPER"></uses-permission>
3、public void setOnKeyListener() 注册键盘事件
1 et = (EditText)findViewById(R.id.et); 2 iv = (ImageView)findViewById(R.id.iv); 3 et.setOnKeyListener(new OnKeyListener() { 4 5 public boolean onKey(View v, int keyCode, KeyEvent event) { 6 if(event.getAction()==KeyEvent.ACTION_UP){ 7 String str = et.getText().toString(); 8 if(str.matches("\w+[@]\w+[.]+\w")){ 9 iv.setImageResource(R.drawable.feng01); 10 }else { 11 iv.setImageResource(R.drawable.icon); 12 } 13 } 14 return false; 15 } 16 });
4、public void setOnFocusChangListener() 注册焦点改变事件
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout 3 xmlns:android="http://schemas.android.com/apk/res/android" 4 android:orientation="vertical" 5 android:layout_width="fill_parent" 6 android:layout_height="wrap_content"> 7 <EditText 8 android:id="@+id/ED01" 9 android:layout_width="fill_parent" 10 android:layout_height="wrap_content" 11 /> 12 <EditText 13 android:id="@+id/ED02" 14 android:layout_width="fill_parent" 15 android:layout_height="wrap_content" 16 /> 17 <TextView 18 android:id="@+id/TV01" 19 android:layout_width="fill_parent" 20 android:layout_height="wrap_content" 21 /> 22 </LinearLayout>
控件显示/隐藏 android:Visibility="Visible" android:Visibility="invisible"
java代码中 控件对象名:setVisibility(view.visible); setVisibility(view.invisible);
5、public void setOnTouchListener() 注册触摸事件
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 tv = (EditText)findViewById(R.id.et1); 2 iv = (ImageView)findViewById(R.id.iv1); 3 iv.setOnTouchListener(new OnTouchListener() { 4 5 public boolean onTouch(View v, MotionEvent event) { 6 tv.setText("("+event.getX()+","+event.getY()+")"); 7 return false; 8 } 9 });
6、public void setOnCreateContextMenuListener() 注册上下文菜单事件