2012-11-26 47 views
28

我嘗試使用input.setImeOptions(EditorInfo.IME_ACTION_DONE)設置軟鍵盤上的「完成」按鈕;setImeOptions:爲什麼「完成」按鈕不顯示在軟鍵盤上?

但「完成」按鈕根本不顯示在軟鍵盤上。

有什麼建議嗎?

public void modif(int position) { 
    AlertDialog.Builder alert = new AlertDialog.Builder(MainActivity.this); 
    alert.setTitle("Modifica"); 
    EditText input = new EditText(MainActivity.this); 
    input.setImeOptions(EditorInfo.IME_ACTION_DONE); 
    alert.setView(input); 
    final Editable value = input.getText(); 
    alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() { 
     public void onClick(DialogInterface dialog, int whichButton) { 
      Toast.makeText(getApplicationContext(), value, Toast.LENGTH_LONG).show(); 
     } 
    }); 

    alert.setNegativeButton("Cancel", new  DialogInterface.OnClickListener() { 
     public void onClick(DialogInterface dialog, int whichButton) { 
     // Canceled. 
     } 
    }); 
    alert.show();     
} 

回答

52

這可能是因爲您的輸入字段不是單行的。

嘗試增加

input.setSingleLine(); 

而且你會看到,按下鍵盤的操作鍵將實際執行一個「完成」行動(即關閉鍵盤)

http://developer.android.com/reference/android/view/inputmethod/EditorInfo.html#IME_ACTION_DONE

+1

如果什麼你想要一個帶有換行但沒有顯式換行符的多行文本框? –

+0

在Layout XML中使用android:imeOptions =「actionUnspecified」.. – AnkitRox