android处理双击事件
android处处处处理双事件
2011-09-01 13:08:22 处 我来两句收藏我要投稿[ 字体:小大]需求:一些透明的button 处处处处处处处处处用来理件境的改
xml:
Java处 代
activity:
Java处 代
import android.content.Context;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener; import android.widget.Button;
import android.widget.Toast;
public class AboutActivity extends Activity {
private Button leftUp;
private Button rightUp;
private Button leftDown;
private Button rightDown;
private ButtonOnTouchListener listener = new ButtonOnTouchListener();
private Context mContext;
//处处处处处 算点的次数
private int count;
//处处处处 第一次点的long 型
private long firstClick;
//处处处处 最后一次点的
private long lastClick;
//处处第一次点的button的id
private int firstId;
//处处处处处 境是否启
private boolean isDebugOpen = false;
//处处处处处处 日志境是否启
private boolean isLogOpen = false;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.about);
mContext = this;
leftUp = (Button)findViewById(R.id.leftUp);
rightUp = (Button)findViewById(R.id.rightUp);
leftDown = (Button)findViewById(R.id.leftDown);
rightDown = (Button)findViewById(R.id.rightDown);
leftUp.setOnTouchListener(listener);
rightUp.setOnTouchListener(listener);
leftDown.setOnTouchListener(listener);
rightDown.setOnTouchListener(listener);
}
private class ButtonOnTouchListener implements OnTouchListener{
@Override
public boolean onTouch(View v, MotionEvent event) {
if(event.getAction()==MotionEvent.ACTION_DOWN){
//处 处处处处处 处处处处处处处处处处处处处如果第二次点距离第一次点那将第二次点看第一次点
处
if(firstClick!=0 && firstId!=0 && System.currentTimeMillis()-
firstClick>300){
count = 0;
firstId = 0;
}
count++;
if(count==1){
firstClick = System.currentTimeMillis();
//处处处处第一次点得按的id
firstId = v.getId();
}else if(count==2){
lastClick = System.currentTimeMillis();
//处处处两次点小于300ms 处处处处 也就是点
if(lastClick-firstClick<300){
//处处第二次点的button的id
int id = v.getId();
//处处判断两次点的button是否是同一个button
if(id == firstId){
switch(id){
case R.id.leftUp:
break;
case R.id.rightUp:
break;
case R.id.leftDown:
if(isLogOpen){//处处处处 日志境
Toast.makeText(mContext, "处处日志", 0).show();
}else{//处处处处处 打日志境
Toast.makeText(mContext, "处处日志启", 0).show();
}
isLogOpen = !isLogOpen;
break;
case R.id.rightDown:
if(isDebugOpen){//处处处处处 境
Toast.makeText(mContext, "处处处处",
0).show();
}else{//处处处处处 打境
Toast.makeText(mContext, "处处处启", 0).show();
}
isDebugOpen = !isDebugOpen;
break;
}
}
}
clear();
}
}
return false;
}
//处 清空状
private void clear(){
count = 0;
firstClick = 0;
lastClick = 0;
firstId = 0;
}
}
}