1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
|
package
com.example.androidevent;
import
android.app.Activity;
import
android.graphics.Color;
import
android.graphics.Typeface;
import
android.os.Bundle;
import
android.view.View;
import
android.view.View.OnClickListener;
import
android.widget.Button;
import
android.widget.EditText;
import
android.widget.TextView;
public
class
EventTest1
extends
Activity
implements
OnClickListener
{
private
TextView content;
int
flag=
0
;
//字体样式标识
@Override
protected
void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
setContentView(R.layout.main);
content = (TextView)findViewById(R.id.content);
//1.颜色:内部类形式
Button redBtn = (Button)findViewById(R.id.red);
Button greenBtn = (Button)findViewById(R.id.green);
Button blueBtn = (Button)findViewById(R.id.blue);
EventListener inner =
new
EventListener();
//实例化一个事件监听器对象
redBtn.setOnClickListener(inner);
//向以下界面组件注册同一个事件监听器
greenBtn.setOnClickListener(inner);
blueBtn.setOnClickListener(inner);
//2.字体大小:外部类形式
Button bigger = (Button)findViewById(R.id.big);
Button smaller = (Button)findViewById(R.id.small);
OuterListener outer =
new
OuterListener(content);
//实例化一个事件监听器对象
bigger.setOnClickListener(outer);
smaller.setOnClickListener(outer);
//3.字体样式:类自身作为事件监听器
Button boldBtn = (Button)findViewById(R.id.bold);
Button inclineBtn = (Button)findViewById(R.id.incline);
Button normalBtn = (Button)findViewById(R.id.normal);
boldBtn.setOnClickListener(
this
);
//向以下界面组件注册同一个事件监听器
inclineBtn.setOnClickListener(
this
);
normalBtn.setOnClickListener(
this
);
//4.匿名内部类
final
EditText text = (EditText)findViewById(R.id.text);
text.setOnClickListener(
new
OnClickListener(){
public
void
onClick(View v)
{
String contentText=text.getText().toString();
content.setText(contentText);
//将编辑框内容设置到文本显示框中
}
});
}
/*方法一:内部类形式
* 在onClick函数中,通过视图的getId()方法判定产生事件组件的ID并作出相应的响应*/
public
class
EventListener
implements
OnClickListener
{
public
void
onClick(View arg0) {
switch
(arg0.getId())
{
case
R.id.red:
//设置红色按钮被按下
content.setTextColor(Color.RED);
break
;
case
R.id.green:
content.setTextColor(Color.GREEN);
break
;
case
R.id.blue:
content.setTextColor(Color.BLUE);
break
;
default
:
break
;
}
}
}
/*方法3.类自身作为事件监听器*/
@Override
public
void
onClick(View v)
{
//flag为样式标识,当flag=0表示默认,flag=1表示倾斜,flag=2表示加粗,flag=3表示倾斜又加粗
switch
(v.getId())
{
case
R.id.bold:
//设置加粗
if
(flag==
1
||flag==
3
)
{
content.setTypeface(Typeface.MONOSPACE,Typeface.BOLD_ITALIC);
//设置系统默认的字体样式
flag=
3
;
}
else
{
content.setTypeface(Typeface.MONOSPACE,Typeface.BOLD);
flag=
2
;
}
break
;
case
R.id.incline:
if
(flag==
2
|| flag==
3
)
{
content.setTypeface(Typeface.MONOSPACE,Typeface.BOLD_ITALIC);
//设置系统默认的字体样式
flag=
3
;
}
else
{
content.setTypeface(Typeface.MONOSPACE,Typeface.ITALIC);
flag=
1
;
}
break
;
case
R.id.normal:
content.setTypeface(Typeface.MONOSPACE,Typeface.NORMAL);
//设置系统默认的字体样式
flag=
0
;
break
;
default
:
break
;
}
}
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
package
com.example.androidevent;
import
android.view.View;
import
android.view.View.OnClickListener;
import
android.widget.TextView;
/*外部类形式*/
public
class
OuterListener
implements
OnClickListener
{
private
TextView text;
private
float
size;
//构造方法1:将文本组件对象作为参数传递并赋值给类成员对象
public
OuterListener(TextView t)
{
this
.text = t;
}
//构造方法2
public
OuterListener()
{
super
();
}
public
void
onClick(View v)
{
size= text.getTextSize();
//获取文本字体大小
switch
(v.getId())
{
case
R.id.big :
{
size+=
4
;
break
;
}
case
R.id.small :
{
size-=
4
;
break
;
}
default
:
break
;
}
//设置最值限度
if
(size<=
8
)
size=
8
;
if
(size>=
72
)
size=
72
;
text.setTextSize(size);
}
}
|
事件 |
接口 |
处理方法 |
描述 |
单击事件 |
View.OnClickListener |
abstract void onClick (View v) |
单击组件时触发 |
单击事件 |
View.OnLongClickListener |
abstract boolean onLongClick (View v) |
长按组件时触发 |
键盘事件 |
View.OnKeyListener |
abstract boolean onKey(View v, int keyCode, KeyEvent event) |
处理键盘事件 |
焦点事件 |
View.OnFocusChangeListener |
abstract void onFocusChange (View v, boolean hasFocus) |
当焦点发生改变时触发 |
触摸事件 |
View.OnTouchListener |
abstract boolean onTouch (View v, MotionEvent event) |
产生触摸事件 |
方法 |
描述 |
void setOnClickListener(View.OnClickListener l) |
注册单击事件 |
void setOnLongClickListener(View.OnLongClickListener l) |
注册长按事件 |
void setOnKeyListener(View.OnKeyListener l) |
注册键盘事件 |
void setOnFocusChangeListener(View.OnFocusChangeListener l) |
注册焦点改变事件 |
void setOnTouchListener(View.OnTouchListener l) |
注册触摸事件 |
void setOnCreateContextMenuListener(View.OnCreateContextMenuListener l) |