如果在按钮按下之后,需要改变按钮的样式,或者按钮的文字。
比如类似于微信的,普通状态下是“按下请说话”,按下之后“松开发送”之类的。。
普通的OnClickListener就无能为力了,这个时候可以用OnTouchListener
Button btn1 = (Button)findViewById(R.id.button1);
btn1.setOnTouchListener(button1Listener);
private OnTouchListener button1Listener = new OnTouchListener() {
public boolean onTouch(View arg0, MotionEvent event) {
// TODO Auto-generated method stub
int iAction = event.getAction();
if (iAction == MotionEvent.ACTION_DOWN) { // 按下
} else if (iAction == MotionEvent.ACTION_UP) { // 弹起
}
return false; // return false表示系统会继续处理
}
};
这个时候就可以在按下或者弹起那个分支里面设置按钮的文字或背景。
据网友说,也可以监听OnKey事件。
onKey(View v, int keyCode, KeyEvent event);
通过判断event的类型就可以知道按钮处理什么状态。
这是通过代码的方式更改,也可以使用selector在xml中进行配置,可以参考这篇文章: