2014-04-07 3 views
0

내 키 이벤트는 에뮬레이터에서 작동하지만 앱을 설치하면 휴대 전화가 키 이벤트를 인식하지 못합니다. 이걸 도와주세요 View.onKey 이벤트 리스너를 사용하고 있습니다. 내 코드는 다음과 같습니다 - 경우 1 : e1.setOnKeyListener (새 View.OnKeyListener() {키 이벤트는 에뮬레이터에서 작동하지만 모바일에서는 작동하지 않습니다.

 @Override 
     public boolean onKey(View arg0, int arg1, KeyEvent arg2) { 
      // TODO Auto-generated method stub 
      Typeface type = Typeface.createFromAsset(getAssets(),"fonts/Respective_Swashes_Slanted.ttf"); 
       if(arg2.getAction()==KeyEvent.ACTION_DOWN) 
       { 

        e2.setTypeface(type); 
        e2.setTextSize(30); 
        e2.setText(e1.getText()); 
       } 
      return false; 
     } 
    }); 



     break; 
    case 2: e1.setOnKeyListener(new View.OnKeyListener() { 

     @Override 
     public boolean onKey(View arg0, int arg1, KeyEvent arg2) { 
      // TODO Auto-generated method stub 
      Typeface type = Typeface.createFromAsset(getAssets(),"fonts/doridrobot.ttf"); 
       if(arg2.getAction()==KeyEvent.ACTION_DOWN) 
       { 

        e2.setTypeface(type); 
        e2.setTextSize(30); 
        e2.setTextColor(Color.GREEN); 
        e2.setText(e1.getText()); 
       } 
      return false; 
     } 
    }); 

     break; 

경우 3 : e1.setOnKeyListener (새 View.OnKeyListener() {

 @Override 
     public boolean onKey(View arg0, int arg1, KeyEvent arg2) { 
      // TODO Auto-generated method stub 
      Typeface type = Typeface.createFromAsset(getAssets(),"fonts/future.ttf"); 
       if(arg2.getAction()==KeyEvent.ACTION_DOWN) 
       { 

        e2.setTypeface(type); 
        e2.setTextSize(30); 
        e2.setTextColor(Color.RED); 
        e2.setText(e1.getText()); 
       } 
      return false; 
     } 
    }); 

     break; 

경우 4 : e1.setOnKeyListener (새 View.OnKeyListener() {

@Override 
public boolean onKey(View arg0, int arg1, KeyEvent arg2) { 
    // TODO Auto-generated method stub 
    Typeface type = Typeface.createFromAsset(getAssets(),"fonts/flattered.ttf"); 
     if(arg2.getAction()==KeyEvent.ACTION_DOWN) 
     { 

      e2.setTypeface(type); 
      e2.setTextSize(30); 
      e2.setTextColor(Color.RED); 
      e2.setText(e1.getText()); 
     } 
    return false; 
} 

})

012 documentation에서 3,582,
+0

나는 ontouch 이벤트를 사용해야합니까 ????? – AnonymousDev

답변

1

: 하드웨어 키가보기에 파견 될 때 호출

. 이렇게하면 청취자가 대상보기 전에 응답 할 수 있습니다.

소프트웨어 키보드의 키 누름은 일반적으로이 방법을 트리거하지 않지만 일부 사용자는 일부 상황에서 그렇게 할 수 있습니다. 소프트웨어 입력 방법이 키 기반이어야한다고 가정하지 마십시오. 그렇다고해도 은 예상했던 것과 다른 방식으로 키 누름을 사용할 수 있습니다. 따라서 부드러운 입력 키 누름을 안정적으로 잡는 방법은 입니다.

기본적으로 기기에 하드웨어 키보드가없는 경우 onKey이 실행되지 않을 수 있습니다. 모든 터치 이벤트

onClickListener에서 호출 - - 뷰를 클릭 할 때 호출 당신의 필요 조건에 따라 당신은

onTouchListener가 사용할 수 있습니다.

또는 기타 Android가 제공하는 listeners 중 하나입니다.

+0

키보드 키를 감지하기 위해 onTouch 이벤트를 어떻게 사용할 수 있습니까? – AnonymousDev

+0

모든보기에서 작동하기 때문에 onTouch 이벤트에서 키보드 누르기를 감지하는 신뢰할 수있는 방법이 있는지 확실하지 않습니다. 텍스트 필드로 작업하는 경우 [textWatcher] (http://developer.android.com/reference/android/text/TextWatcher.html)를 사용하는 것이 좋습니다. 일반적으로 키보드가 올라가면 사용자가 어떤 종류의 텍스트 필드를 편집하고 있습니다. 텍스트 관찰자는 텍스트 상자에서 변경 될 때마다 알려줍니다. – Naveed

+0

감사합니다. – AnonymousDev

관련 문제