2014-11-20 49 views
3

一個按鈕很簡單,機器人的EditText imeOption的OnClick

<Button 
    android:blablabla="blabla" 
    ... 
    android:onClick="doSomething" /> 

這將瓶坯DoSomething的(視圖)功能。

我們該如何用EditText來模仿它? 我已閱讀關於此,我讀了大多數人使用imeOptions(這仍然是必要的),然後在該EditText對象上實現一個actionListener。

這是我迷路了。 有沒有一種方法來實現「完成」 - 操作(或發送或...)從我們的鍵盤到onClick函數,就像我們使用Button一樣,還是我們需要顯式實現偵聽器?

問候!

回答

1

我假設你想要做的是點擊EditText時運行一些代碼?

如果是這樣,我發現從另一個線程網站上的解決方案:

EditText myEditText = (EditText) findViewById(R.id.myEditText); 
    myEditText.setOnFocusChangeListener(new OnFocusChangeListener() { 

    @Override 
    public void onFocusChange(View v, boolean hasFocus) { 
     if (hasFocus) { 

    then do this code here 

    } 
} 
}); 

通過:A better way to OnClick for EditText fields?

+0

不,我想運行一些代碼,當用戶按下「完成」或任何你選擇的選項。我知道這可以通過Listener來完成,但是我的問題是它是否可以像Button一樣完成?只需在xml文件中定義函數的名稱即可。 'android:onClick =「doSomething」' – 2014-11-21 01:03:45

3

下面的代碼,當你按在softkeyboard的Done鍵將執行一些動作。

editText.setOnEditorActionListener(new OnEditorActionListener() {   
    @Override 
    public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { 
     if(actionId==EditorInfo.IME_ACTION_DONE){ 
      //do your actions here that you like to perform when done is pressed 
      //Its advised to check for empty edit text and other related 
      //conditions before preforming required actions 
     } 
    return false; 
    } 
}); 

希望它有幫助!

+0

對不起,但這不是我要求的。我知道如何用聽衆來實現它。我問是否有辦法在xml中添加一些代碼來定義按下「完成」按鈕後應執行的功能。就像我們用我們的按鈕實現android:onClick =「dosomething」一樣。我們沒有在該按鈕上實現onClickListener,我們定義要執行的函數。 – 2014-11-21 14:04:32

+0

@MrMeTumbsUp您應該接受此答案,因爲它是檢測IME上的單個按鈕單擊的唯一方法。 – 2015-09-29 01:34:47