您的位置:首页 > 其它

onclicklistener到底怎么用?

2016-07-15 19:59 567 查看
转载地址:http://blog.csdn.net/dickren123/article/details/7216975

相信很多像我一样的新手学习Android开发会遇到这个问题,通过这几天的归类和总结,将我的理解写在下面,欢迎大家一起前来讨论:

以按钮BUTTON的监听事件为例,以下的监听实现都是等价的:

1.使用接口继承按钮监听方法

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类的监听方法

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.不用接口,在类内部直接实现监听

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!");// 抽象接口的内部方法的实现
}
});
}
}


4、如果不使用匿名实例,也可以定义一个具体的实例

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

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: