2010-11-13 57 views
5

hi 在android中使用onKey和onKeyUp/Down事件的地方。在哪里&如何在android中使用onKey,onkeyDown,onKeyPressed事件?

例如我有一个textview。当用户按下任何键我想要在文本视图中显示该字符, 在这种情况下,使用哪个事件(上图)。

PLEASE explain with EXAMPLE 

或者给一些其他的例子,获取关键事件并在edittext或其他的打印。

在此先感谢...

+3

为了获得声誉,让别人回答你的问题,接受你的问题的好答案。 – 2010-11-23 11:59:27

回答

3

请参考下面的代码

public class Demo extends Activity 
{ 

    /** 
    * Variables & Objects Declaration 
    * 
    */ 


    EditText et; 

    private static Context CONTEXT; 
    /** Called when the activity is first created. */ 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 
     requestWindowFeature(Window.FEATURE_CUSTOM_TITLE); 
     setContentView(R.layout.main); 
     et =(EditText)findViewById(R.id.header_text02); 
     }// end of OnCreate 

    @Override 
    public boolean onKeyDown(View arg0, Editable arg1, int arg2, KeyEvent arg3) { 
     // TODO Auto-generated method stub 
     Log.v("I am ","KeyDown"); 
      switch (keyCode) { 
        case KeyEvent.KEYCODE_A: 
        { 
         //your Action code 
         et.setText("A"); 
         return true; 
        } 
         case KeyEvent.KEYCODE_B: 
        { 
         //your Action code 
         et.setText("B"); 
         return true; 
        } 
        // similarly write for others too 
     } 



     return true; 
    }// End of onKeyDown 



    @Override 
    public boolean onKeyUp(View arg0, Editable arg1, int arg2, KeyEvent arg3) { 
     // TODO Auto-generated method stub 
     Log.v("I am ","KeyUp"); 
      et.setText("KeyUp"); 
     return true; 
    }// End of onKeyUp 



} 
+0

@shankar可以帮助我在Home按钮上显示警报消息。 – Kishore 2011-08-17 06:07:29

12

如果你在寻找的EditText此,它能够更好地使用这些

editText.addTextChangedListener(new TextWatcher() { 
       public void afterTextChanged(Editable s) { 
        Log.v("TAG", "afterTextChanged"); 
       } 

       public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) { 
        Log.v("TAG", "beforeTextChanged"); 
       } 

       public void onTextChanged(CharSequence s, int start, int before, int count) { 
        Log.v("TAG", "onTextChanged"); 
       } 
      }); 
+0

最适合我的解决方案! – 2012-03-17 07:01:54