onClick事件
1.Button和ImageButton都有一个onClick事件
通过自身的setOnClickListener(OnClickListener)方法添加点击事件
2.所有的控件都有一个onClick事件,不仅仅Button和ImageButton有
3.通过点击事件的监听可以实现点击按钮之后要发生什么动作
监听事件实现的几种写法
1.匿名内部类的实现
2.独立类的实现
3.实现接口的方式来实现
匿名内部类实现
public class FirstActivity extends AppCompatActivity {
private static final String TAG = "FirstActivity";
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//将布局xml文件引入到activity中来
setContentView(R.layout.first_layout);
/*
* 1.初始化当前所需要控件,如何初始化一个控件?
* findViewById——返回的是个View对象
* findViewById——通过R文件中的Id来找View
*
* 2.设置Button的监听器,通过监听器实现我们点击Button要操作的事情
* */
Button button = (Button) findViewById(R.id.button);
/*
* 1.监听事件通过第一种方式实现(匿名内部类)
* */
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
Toast.makeText(FirstActivity.this,"点击了button",Toast.LENGTH_SHORT).show();
}
});
}
}
独立类的实现
这种方式可以使得所有继承了独立类的button被点击了以后,实现相同的操作,例如改变button的透明度,只要加一句super.onClick(view);即可
public class FirstActivity extends AppCompatActivity {
private Button bt1;
private Button bt2;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//将布局xml文件引入到activity中来
setContentView(R.layout.first_layout);
bt1 = (Button)findViewById(R.id.button);
bt2 =(Button)findViewById(R.id.button2);
//匿名内部类写法
/* bt1.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
Toast.makeText(FirstActivity.this,"button1被点击了",Toast.LENGTH_SHORT).show();
}
});*/
//点击事件外部类的写法和作用
bt1.setOnClickListener(new MyOnclickListener(){
public void onClick(View view){
//调用父类的onClick
super.onClick(view);
Toast.makeText(FirstActivity.this,"button1被点击了",Toast.LENGTH_SHORT).show();
}
});
bt2.setOnClickListener(new MyOnclickListener(){
public void onClick(View view){
//调用父类的onClick
super.onClick(view);
Toast.makeText(FirstActivity.this,"button2被点击了",Toast.LENGTH_SHORT).show();
}
});
}
}
/*
* OnclickListener是一个接口
* */
class MyOnclickListener implements View.OnClickListener{
public void onClick(View view) {
//让所有使用当前外部类的点击事件实现同一个同坐,改变button的透明度
view.setAlpha(0.5f);
System.out.println("button被点击了");
}
}
实现接口的方式来实现
public class FirstActivity extends AppCompatActivity implements View.OnClickListener{
private ImageButton ibtu;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//将布局xml文件引入到activity中来
setContentView(R.layout.first_layout);
ibtu = (ImageButton)findViewById(R.id.imageButton);
ibtu.setOnClickListener(this);
}
public void onClick(View view) {
Log.d("FirstActivity","onClick: ");
}
}