0

我想检测何时按下软键“完成”,以便当它按下时,会出现一条敬酒消息。我在这里看到了关于同样问题的这篇文章,但是,我对如何准确地实施该解决方案感到困惑。

提供的解决方案是:

 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. 是否应该在 onCreate 方法下定义 editText?
  2. 整个代码是否应该在 onCreate 方法下?
4

4 回答 4

1

In short, yes. Unless you only want to activate the EditText under certain conditions then you can put it where the EditTextcomes into play if you'd like (like on click event, in a runnable or after a web call) it comes down to preference.

于 2013-01-23T22:05:23.470 回答
1

你可以把你的EditText任何你喜欢的地方。我倾向于将所有内容拆分为更小的方法,因为我认为它使代码更容易更改,但将几乎所有内容都放在onCreate方法中是一种非常常见的做法,因为当您不来回跳转时,它使代码更容易遵循不同方法之间。

于 2013-01-23T22:11:07.897 回答
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;
        }
});
于 2013-02-26T04:24:54.690 回答
0

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

这必须在之后调用setContentView

在该编辑文本 ImeOption 的布局中设置,否则您将永远无法捕捉到该 DONE 动作。

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"
             >
于 2013-01-23T22:52:19.823 回答