我想检测何时按下“完成”软键,这样当它出现时,就会显示一个Toast消息。我看到这篇文章有关同一个问题here但是,我对如何实施解决方案感到困惑。
提供的解决方案是:
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;
}
});
我的问题是:
答案 0 :(得分:1)
简而言之,是的。除非您只想在某些条件下激活EditText
,否则您可以将它放在EditText
发挥作用的位置(如点击事件,可运行或网络通话后)归结为偏好。
答案 1 :(得分:1)
您可以将EditText
放在任何您喜欢的地方。我倾向于将所有内容拆分为更小的方法,因为我认为它使代码更容易更改,但是将几乎所有内容都放在onCreate
方法中是一种非常常见的做法,因为它使得代码更易于遵循不要在不同方法之间来回跳转。
答案 2 :(得分: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"
>
答案 3 :(得分:0)
导入:
import android.view.View.OnKeyListener;
在关于特定编辑文本的键时尝试使用以下代码。
代码:
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;
}
});