(此文为本人android学习之路的笔记,属于基础;如果有错误,欢迎指正)
1.Button和ImageButton
(1)共有的特性:都可以作为一个按钮产生点击事件(2)不同点:Button有text的属性;ImageButton有src属性
(3)产生明显的点击效果
2.onClick事件(监听需要用到)
(1)Button和ImageButton都拥有一个onclick事件
通过自身的.setOnclickListener(OnClickListener)方法添加点击事件
(2)所有的控件都有一个onclick的事件,不仅仅Button和ImageButton拥有
(3)通过点击事件的监听可以实现点击按钮之后要发生什么动作
3.监听事件实现的三种写法(要记得导入包)
(1)匿名内部类的实现
1.初始化当前所需要的控件。如何初始化一个控件
findViewById---返回的是一个View的对象
private Button loginButton;//在MainActivity.java中作为成员变量定义
loginButton = (Button)findViewById(R.id.button1);// button1是要监听按钮的id
2.设置Button的监听器,通过监听器实现我们点击Button要操作的事情
loginButton.setOnClickListener(new OnClickListener(){
public void onClick(view v){//在当前onClick方法中监听点击Button的动作
System.out.println("我的Button被点击了");
}
));
(2)外部类的实现(当所有的按钮被点击都会运行同样的代码时,就可以考虑用外部类来实现监听;不过该块知识点比较模糊)
1.初始化控件
private Button bt1;
private Button bt2;
bt1=(Button)findViewById(R.id.button1);
bt2=(Button)findViewById(R.id.button2);
2.定义外部类
class MyOnClickListener implements OnClickListener{
@Override
public void onClick(View v) {
//Log.i("tag"," 父类的onclick事件");
//当所有使用当前外部类的点击事件的按钮都要做出一个动作,改变button本身的透明
v.setAlpha(0.5f);
}
}
3.外部类的运用
bt1.setOnClickListener(new MyOnClickListener(){
@Override
public void onClick(View v) {
//调用父类的onClick方法,这里的父类指的是外部类MyOnClickListener
//父类这个点有点难理解;这里表示不仅子类对象的OnClick会运行,父类的Onclick也会运行
super.onClick(v);
Toast.makeText(MainActivity.this, "bt1要执行的逻辑", 1).show();
}
});
bt2.setOnClickListener(new MyOnClickListener(){
@Override
public void onClick(View v) {
super.onClick(v);
Toast.makeText(MainActivity.this, "bt2要执行的逻辑", 1).show();
}
});
(3)实现接口的方式来实现
1.要先继承OnClickListener
public class MainActivity extends Activity implements OnClickListener {
2.再定义一个方法
public void onClick(View v) {
Log.i("tag", "第三种方式实现");
}
3.初始化控件
private ImageButton imgBt;
imgBt = (ImageButton) findViewById(R.id.imageButton1);
4.控件与监听器结合
imgBt.setOnClickListener(this);