Button设置监听的三种⽅式Button 是继承⾃TextView
基本监听步骤:
1、写布局
2、在Activity的onCreate中初始化控件
3、定义监听类
4、设置监听
5、填写监听实现⽅法
点击监听:onClickListener
1、定义监听的实现类
class BtnClickListener implements OnClickListener{
/**
* 当监听的视图被点击时触发 , 参数 v 表⽰被点击的对象
*/
@Override
public void onClick(View v) {
count++;
tv.setText(" 点击了 "+count+" 次 ");
}
}
2、对视图设置对象
protected void onCreate(Bundle savedInstanceState) {
setContentView(R.layout.activity_main);
tv = (TextView) findViewById(R.id.m_tv);
// 从布局中获取视图对象
Button btn = (Button) findViewById(R.id.m_btn);
// 创建
BtnClickListener l = new BtnClickListener();
// 设置按钮的点击监听
btn.setOnClickListener(l);
}
监听的第⼆种设置 – 匿名内部类
⼀次性的
btn2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Button b = (Button) v;
tv.Text());
}
});
使⽤成员变量实现共享
// 按钮的点击
private OnClickListener mClick = new OnClickListener() {
@Override
public void onClick(View v) {
Button b = (Button) v;
tv.Text());
}
};
protected void onCreate(Bundle savedInstanceState) {
setContentView(R.layout.activity_main);
...
// 使⽤匿名内部类
btn2.setOnClickListener(mClick);
.
..
}
的第三种设置⽅式,可以直接在 Activity (视图处理的类)上直接实现 OnClickListener ,重写 onClick ⽅法
public class MainActivity extends Activity implements OnClickListener {
...htmlbutton属性
@Override
protected void onCreate(Bundle savedInstanceState) {
setContentView(R.layout.activity_main);
...
findViewById(R.id.m_btn2).setOnClickListener(this);
...
}
@Override
public void onClick(View v) {
Button b = (Button) v;
tv.Text());
}
}
多个视图共享:
可以使⽤ id 来区分
@Override
public void onClick(View v) {
// 获取被点击的视图的 id
switch (v.getId()) {
case R.id.m_btn:
tv.setText(" 第⼀个按钮被点击 ");
break;
case R.id.m_btn2:
tv.setText("ABC 123");
break;
}
}
长按监听
实现 OnLongClickListener ,重写 onLongClick(View v) ⽅法
@Override
public boolean onLongClick(View v) {
// 视图被长按之后做的事情
tv.setText(" 按钮被长按了 ");
//false 表⽰不拦截事件,可以向下传递
//true 表⽰拦截了事件,到此为⽌
return true;
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论