view监听实例程序
来源:互联网 发布:cmd 查看80端口占用 编辑:程序博客网 时间:2024/05/16 02:00
相信很多像我一样的新手学习ANDROID开发会遇到这个问题,通过这几天的归类和总结,将我的理解写在下面,欢迎大家一起前来讨论:
以按钮BUTTON的监听事件为例,以下的监听实现都是等价的:
1.使用接口继承按钮监听方法:
- package dickren123.hui.say_hello_to_world;
- import android.app.Activity;
- import android.os.Bundle;
- import android.view.View;
- import android.widget.Button;
- import android.widget.TextView;
- /* 这里接口继承的方法是隶属于按钮BUTTON的,因此前面导入的头文件只需有BUTTON即可*/
- public class Hello_to_worldActivity extends Activity implements Button.OnClickListener{
- /** Called when the activity is first created. */
- private Button btn_say_hello;
- private TextView hello_world;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- btn_say_hello = (Button)findViewById(R.id.bnt_SAY_HELLO_TO_WORLD);
- hello_world = (TextView)findViewById(R.id.textView1);
- btn_say_hello.setOnClickListener(this) ;//由于该类继承了BUTTON的监听,
- } //因此设置监听的参数只需传本类的对象即可
- public void onClick(View v) {
- // TODO Auto-generated method stub
- hello_world.setText("dickren123!");//抽象接口的内部方法的实现
- }
- }
2.使用接口继承view类的监听方法
- package dickren123.hui.say_hello_to_world;
- import android.app.Activity;
- import android.os.Bundle;
- import android.view.View;
- import android.view.View.OnClickListener;/* 导入的头文件需要有view类监听*/
- import android.widget.Button;
- import android.widget.TextView;
- public class Hello_to_worldActivity extends Activity implements OnClickListener{
- /** Called when the activity is first created. */
- private Button btn_say_hello;
- private TextView hello_world;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- btn_say_hello = (Button)findViewById(R.id.bnt_SAY_HELLO_TO_WORLD);
- hello_world = (TextView)findViewById(R.id.textView1);
- btn_say_hello.setOnClickListener(this) ;//由于该类继承了view的监听,
- } //因此设置监听的参数只需传本类的对象即可
- public void onClick(View v) {
- // TODO Auto-generated method stub
- hello_world.setText("dickren123!");//抽象接口的内部方法的实现
- }
- }
3.不用接口,在类内部直接实现监听
- package dickren123.hui.say_hello_to_world;
- import android.app.Activity;
- import android.os.Bundle;
- import android.view.View;
- import android.widget.Button;
- import android.widget.TextView;
- public class Hello_to_worldActivity extends Activity {
- /** Called when the activity is first created. */
- private Button btn_say_hello;
- private TextView hello_world;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- btn_say_hello = (Button)findViewById(R.id.bnt_SAY_HELLO_TO_WORLD);
- hello_world = (TextView)findViewById(R.id.textView1);
- btn_say_hello.setOnClickListener(new Button.OnClickListener(){
- public void onClick(View v) { //使用匿名的Button实例
- // TODO Auto-generated method stub
- hello_world.setText("dickren123!");//抽象接口的内部方法的实现
- }
- }) ;
- }
- }
如果不使用匿名实例,也可以定义一个具体的实例,如下:
- package dickren123.hui.say_hello_to_world;
- import android.app.Activity;
- import android.os.Bundle;
- import android.view.View;
- import android.widget.Button;
- public class Hello_to_worldActivity extends Activity {
- /** Called when the activity is first created. */
- private Button btn_say_hello;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- btn_say_hello = (Button)findViewById(R.id.bnt_SAY_HELLO_TO_WORLD);
- btn_listener bl = new btn_listener();
- btn_say_hello.setOnClickListener(bl); //bl是类btn_listener的实例,而btn_listener为监听方法的接口
- } //因此设置监听的参数只需传本类的对象即可
- }
- class btn_listener implements Button.OnClickListener
- {
- public void onClick(View v) {
- // TODO Auto-generated method stub
- }
- }
Button和View是继承关系
所以Button的监听,Button.OnClickListener View.OnClickListener都可以。
但是如果是其他View,就不能用Button.OnClickListener ,而要用View.OnClickListener或者对应的监听器。
0 0
- view监听实例程序
- OEM启动:TNS:无监听程序;到实例代理错误
- 不用listener监听view
- View的双击监听
- View button 建立监听
- view绘制监听
- View类监听
- js监听事件实例
- 自定义View实现手势监听
- 自定义View及其监听事件
- 监听view 的滚动状态
- Android监听view尺寸变化
- android View 绘制完成监听
- View监听绑定不上
- android监听View加载完成
- 服务器监听程序
- 服务器监听程序
- JAVA自动监听程序
- nyoj 部分和问题
- Sublimetext2/3中java、c/c++的输入问题的解决
- MongoDB的creatCollection方法
- hdoj.1874 畅通工程续【Floyd算法】最短路径 20141129
- 利用jsoup解析网页和xml文件
- view监听实例程序
- 如何将Emmet安装到到 Sublime text 3?
- C++写一个打开文件的百宝箱
- java transient简介
- 【动态规划】输出所有的最长公共子序列
- 前进气格栅装备有镀铬装饰条
- JavaScript示例十(表单序列化)
- ecllipse pdev不能支持PIL(python image library)的解决方法
- Linux 解压,压缩