读书人

ANDROID 怎么实现一键多值

发布时间: 2012-05-31 12:19:24 作者: rapoo

ANDROID 如何实现一键多值

请问 android下的硬键盘 ,现在要实现1键多值。比如在1秒钟内,按1下输出A,连按两下输出B,连按3下输出C。 现在是通过 onKeyDown,能够实现按1个键输入A

[解决办法]

Java code
    long clickTime;    Calendar cal;    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        cal = Calendar.getInstance();        clickTime = cal.getTimeInMillis();                Button button = new Button(this);        button.setOnClickListener(new OnClickListener() {            @Override            public void onClick(View v) {                long now =  Calendar.getInstance().getTimeInMillis();                System.out.println(now+","+clickTime);                if (now - clickTime <= 1000) {                    //自行处理                    System.out.println("1秒内");                }                clickTime=now;            }        });        setContentView(button);    }
[解决办法]
给你说原理把 就是点击一下获取当前时间,再下一次点击的时候判断一下和前一次点击的时间相差多少秒,相差不足1s就变换。。。。如果相差大于1s就从第一个字母开始
[解决办法]
package com.aAAaa;

import java.util.Timer;
import java.util.TimerTask;

import android.app.Activity;
import android.content.Context;
import android.graphics.Color;
import android.os.Bundle;
import android.util.Log;
import android.view.GestureDetector;
import android.view.GestureDetector.OnGestureListener;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;

public class AAaa extends Activity{
private Button leftUp;
private ButtonOnTouchListener listener = new ButtonOnTouchListener();
// 计算点击的次数
private int count = 0;
// 第一次点击的时间 long型
private long firstClick;
// 最后一次点击的时间
private long lastClick =0;
// 第一次点击的button的id
// 调试环境是否开启
private Timer timer ;
private TimerTask task;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
leftUp = (Button) findViewById(R.id.leftUp);
leftUp.setOnTouchListener(listener);

}
private class ButtonOnTouchListener implements OnTouchListener {
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
count++;
Log.v("count", count+"");
if (count == 1) {
firstClick = System.currentTimeMillis();
timer = new Timer();
task = new TimerTask() {
public void run() {
if(lastClick==0){
Log.v("danji", "danji");
clear();
}
}
};
timer.schedule(task,300);
} else if (count == 2) {
timer.cancel();
lastClick = System.currentTimeMillis();
if (lastClick - firstClick < 300) {
Log.v("shuangji", "shuangji");
}
clear();
}
}
return false;
}
// 清空状态
private void clear() {
count = 0;
firstClick = 0;
lastClick = 0;
}
}
}

读书人网 >Android

热点推荐