当前位置: 代码迷 >> Android >> ANDROID 怎么实现一键多值
  详细解决方案

ANDROID 怎么实现一键多值

热度:70   发布时间:2016-05-01 21:07:39.0
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;
}
}
}
  相关解决方案