2012-11-26 28 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

レイアウトXMLでアンドロイドを使用:imeOptions = "actionUnspecified" – AnkitRox

関連する問題