Android 四种常用的监听器
2016-05-18 22:47
375 查看
Android 四种常用的监听器
什么是监听器?
1、监听器是个抽象类,它包含了一个事件触发时系统会去调用的函数
2、在子类中,根据您项目的需要重写这个函数
3、派生后的监听器需要绑定到按钮上,就像一个耳机可以发出声音,但您不去戴它,您是听不到它发出的声音的。一般的情况是这个按钮可能需要这个监听器,而另外一个按钮需要另外一个监听器,每个监听器各司其职,但功能相似时,也可以多个按钮共同绑定一个监听器。
第一种监听器:匿名内部类
实现方法: listener.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
}
});
.xml
<Button
android:id="@+id/listener"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="listener" />
.java
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button listener = (Button) findViewById(R.id.listener);
listener.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Toast.makeText(MainActivity.this, "我是匿名内部类", 0).show();
}
});
}
第二种监听器 xml监听器 (这种想控制Button的属性 例如setEnabled 还有双击的时候 不推荐使用这种 )
在.xml中加个onClick语句
.xml
<Button
android:id="@+id/listener"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:onClick="click"
android:text="listener" />
.java
public class Xml_listener_Activity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_xml_listener);
}
public void click(View view){
Toast.makeText(this, "我是xml监听器", 0).show();
}
}
第三种监听器 activity本身作为监听器
这个把你的类实现了OnClickListener接口
.xml
<Button
android:id="@+id/listener"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="listener" />
.java
public class ActivityListenerActivity extends ActionBarActivity implements OnClickListener{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_activity_listener);
TextView listener = (TextView) findViewById(R.id.listener);
listener.setOnClickListener(this);
}
@Override
public void onClick(View arg0) {
Toast.makeText(this, "我是activity本身作为监听器", 0).show();
}
}
第四种监听器 内部类作为监听器
.xml
<Button
android:id="@+id/listener"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="listener" />
.java
public class InsideListenerActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_inside_listener);
TextView list = (TextView) findViewById(R.id.listener);
mylistener listener=new mylistener();
list.setOnClickListener(listener);
}
class mylistener implements OnClickListener{
@Override
public void onClick(View arg0) {
Toast.makeText(InsideListenerActivity.this, "我是内部类作为监听器", 0).show();
}
}
什么是监听器?
1、监听器是个抽象类,它包含了一个事件触发时系统会去调用的函数
2、在子类中,根据您项目的需要重写这个函数
3、派生后的监听器需要绑定到按钮上,就像一个耳机可以发出声音,但您不去戴它,您是听不到它发出的声音的。一般的情况是这个按钮可能需要这个监听器,而另外一个按钮需要另外一个监听器,每个监听器各司其职,但功能相似时,也可以多个按钮共同绑定一个监听器。
第一种监听器:匿名内部类
实现方法: listener.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
}
});
.xml
<Button
android:id="@+id/listener"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="listener" />
.java
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button listener = (Button) findViewById(R.id.listener);
listener.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Toast.makeText(MainActivity.this, "我是匿名内部类", 0).show();
}
});
}
第二种监听器 xml监听器 (这种想控制Button的属性 例如setEnabled 还有双击的时候 不推荐使用这种 )
在.xml中加个onClick语句
.xml
<Button
android:id="@+id/listener"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:onClick="click"
android:text="listener" />
.java
public class Xml_listener_Activity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_xml_listener);
}
public void click(View view){
Toast.makeText(this, "我是xml监听器", 0).show();
}
}
第三种监听器 activity本身作为监听器
这个把你的类实现了OnClickListener接口
.xml
<Button
android:id="@+id/listener"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="listener" />
.java
public class ActivityListenerActivity extends ActionBarActivity implements OnClickListener{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_activity_listener);
TextView listener = (TextView) findViewById(R.id.listener);
listener.setOnClickListener(this);
}
@Override
public void onClick(View arg0) {
Toast.makeText(this, "我是activity本身作为监听器", 0).show();
}
}
第四种监听器 内部类作为监听器
.xml
<Button
android:id="@+id/listener"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="listener" />
.java
public class InsideListenerActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_inside_listener);
TextView list = (TextView) findViewById(R.id.listener);
mylistener listener=new mylistener();
list.setOnClickListener(listener);
}
class mylistener implements OnClickListener{
@Override
public void onClick(View arg0) {
Toast.makeText(InsideListenerActivity.this, "我是内部类作为监听器", 0).show();
}
}
相关文章推荐
- 浅析JAVA中过滤器、监听器、拦截器的区别
- Android编程之监听器的实现方法
- Android编程之监听器用法实例分析
- 利用java监听器实现在线人数统计
- Oracle监听口令及监听器安全详解
- ContextLoaderListener监听器的作用
- spring 监听器 IntrospectorCleanupListener
- Oracle监听器
- Android按钮调用setOnClickListener监听方法报错的原因
- 对象作用域与servlet事件监听器
- JAVA笔记【20131217】
- Java Web监听器Listener
- JAVA Web定时执行任务
- PASSION之WEB监听器
- The method setOnClickListener(View.OnClickListener)解决办法
- 【学习笔记】慕课网——web监听器
- 过滤器 监听器
- WindowListener 窗体监听器
- DWR监听器类无法加载。DwrServlet 无法加载
- 黑马程序员--2015.6.29java基础笔记---GUI总结