0

我想要检测何时按下软键“完成”,以便在此时显示烤面包消息。我看到这个帖子提出了同样的问题here但是,我很困惑如何实施解决方案。Android:按下软按键上的“完成”键时检测

提供的解决方案是:

editText = (EditText) findViewById(R.id.edit_text); 

editText.setOnEditorActionListener(new OnEditorActionListener() { 
    @Override 
    public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { 
     if (actionId == EditorInfo.IME_ACTION_DONE) { 
      // toast message 
     } 
     return false; 
    } 
}); 

我的问题是这样的:

  1. 是EDITTEXT假设onCreate方法下被定义?
  2. 是整个代码假设是在onCreate方法?

回答

1

总之,是的。除非你只想在某些条件下激活EditText,否则你可以把它放在EditText发挥作用的地方(如点击事件,可运行或网络调用之后),它会归结为偏好。

1

你可以把你的EditText任何你喜欢的地方。我倾向于将所有东西都分成更小的方法,因为我认为它使代码更易于更改,但几乎所有东西都放在onCreate方法中是非常普遍的做法,因为它使代码更易于在不跳回介于不同的方法之间。

0

editText = (EditText) findViewById(R.id.edit_text);

这必须调用后setContentView

坐落在上编辑文本ImeOption 布局否则你永远也赶不上做完这些动作。

public ... extends Activity 
{ 

public void onCreate(Bundle ...) 
{ 
super... 
setContentVIew... 


editText = (EditText) findViewById(R.id.edit_text); 

editText.setOnEditorActionListener(new OnEditorActionListener() { 
    @Override 
    public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { 
     if (actionId == EditorInfo.IME_ACTION_DONE) { 
      // toast message 
     } 
     return false; 
    } 
}); 

} 
} 

<EditText 
      android:id="@+id/edittext1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:imeOptions="actionDone" 
      > 
0

进口:

import android.view.View.OnKeyListener; 

尝试用下面的代码上perticular编辑文本的关键时候。

代码:

ed.setOnKeyListener(new OnKeyListener() { 

@Override 

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

      // TODO Auto-generated method stubi 

      Log.d("View", "conLL.getWidth() "+conLL.getWidth()); 

      if (event.getKeyCode()==66 && enteredNumber>0) { 

      Log.d("View", "------------------------ "); 

      } 
      return false; 
     } 
});