使用performClick始终调用My Button两次

cas*_*s33 2 android android-button

我有一个简单的代码,在TextView按下按钮或用户按"Enter"后显示字符串.当用户按下按钮时,所有都被找到,但是当按下"enter"时,它调用performClick()调用与按钮相同的功能.但我的功能总是被称为两次:

 private OnKeyListener ChampKeyListener = new OnKeyListener()
    {

        @Override
        public boolean onKey(View v, int keyCode, KeyEvent event)
        {
            if(keyCode == KeyEvent.KEYCODE_ENTER)
            {
                recherche.performClick(); // recherche is my button
            }
            return false;
        }
    };

    private OnClickListener RechercheListener = new OnClickListener() {
        @Override
        public void onClick(View v) {
        //whatever I have tried here it is always called twice

        }
    };
Run Code Online (Sandbox Code Playgroud)

我怎么能阻止它.我已经看到我可以解决我去另一个ViewActivity但我不想使用那些.

任何提示?谢谢!

Dhe*_*ngh 6

  1. 由于有两个新闻KeyEvent.ACTION_DOWN和行动 KeyEvent.ACTION_UP

  2. http://developer.android.com/reference/android/view/View.OnKeyListener.html

返回true如果听众已经消耗的情况下,false否则.

试试吧...

public boolean onKey(View v, int keyCode, KeyEvent event) {

    if (event.getAction() == KeyEvent.ACTION_DOWN)
          {
                if(keyCode == KeyEvent.KEYCODE_ENTER)
                {
                    recherche.performClick(); // recherche is my button
                    return true;
                }


           }

    return false;
}
Run Code Online (Sandbox Code Playgroud)