事件

事件

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);
		   }
		}
	});

下拉框事件

 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()  注册焦点改变事件

 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()  注册触摸事件

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()  注册上下文菜单事件

原文地址:https://www.cnblogs.com/luocixin/p/6862170.html