有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Android键盘暂停

我一直在尝试在键盘的enter键上创建一个“onHold”动作

searchField.setOnKeyListener(new OnKeyListener() {
 @Override
 public boolean onKey(View v, int keyCode, KeyEvent event) {
  searchField.setText(searchField.getText().toString().replace("\n", ""));
 if((CounterRunning)&&(event.getAction() == KeyEvent.ACTION_UP  ) && (keyCode  == KeyEvent.KEYCODE_ENTER))
 {
   CounterRunning = false;
   counter.cancel();
    AddItem();

}
if((event.getAction() == KeyEvent.ACTION_DOWN  ) && (keyCode  == KeyEvent.KEYCODE_ENTER))
{
   CounterRunning = true;
   counter.start();
}
}});
 public class MyCount extends CountDownTimer{

     public MyCount(long millisInFuture, long countDownInterval) {
         super(millisInFuture, countDownInterval);
         }
         @Override
         public void onFinish() {
             CounterRunning = false;
                 AskForDate();
         }
         @Override
         public void onTick(long millisUntilFinished) {

         }
}

我希望用户在单击时运行AddItem(),如果用户按住enter键,则运行AskForDate()。 但是动作{}只有当我从键盘上取下手指时才会触发,我是不是错过了什么

在安卓2.3.7(CM7.2)和安卓4.0.4(CM9)上测试,两者都带有默认软键盘


共 (1) 个答案

  1. # 1 楼答案

    onKeyLongPress event

    试试上面的一个,它说你必须在你的听众中调用开始跟踪

    所以你的代码应该是

    if((event.getAction() == KeyEvent.ACTION_DOWN  ) && (keyCode  == KeyEvent.KEYCODE_ENTER))
    {
       event.startTracking();
    }
    

    因为活动子类关键事件。Callback您可以直接从那里调用您的AskForDate()