setImeOptions:为啥软键盘上不显示“完成”按钮?

Posted

技术标签:

【中文标题】setImeOptions:为啥软键盘上不显示“完成”按钮?【英文标题】:setImeOptions: why the "Done" button does not show on the soft keyboard?setImeOptions:为什么软键盘上不显示“完成”按钮? 【发布时间】:2012-11-13 18:00:29 【问题描述】:

我尝试使用 input.setImeOptions(EditorInfo.IME_ACTION_DONE) 设置软键盘上的“完成”按钮;

但“完成”按钮根本不显示在软键盘上。

有什么建议吗?

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();                   

【问题讨论】:

【参考方案1】:

这可能是因为您的输入字段不是单行的。

尝试添加

input.setSingleLine();

您会看到按下键盘的操作键实际上会执行“完成”操作(即关闭键盘)

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

【讨论】:

如果你想要一个带换行但没有明确换行符的多行文本框怎么办?

以上是关于setImeOptions:为啥软键盘上不显示“完成”按钮?的主要内容,如果未能解决你的问题,请参考以下文章

为啥在软键盘出现和消失时抖动 UI 滞后?

为啥Android不会暂停视图完全被软键盘挡住的片段?

为啥软键盘在对话框片段内的 Web 视图中不起作用?

在android中点击EditText的时候会弹出软键盘,这时候如果想隐藏软键盘或者填完内容后点其他的地方直接隐藏

移动端软键盘弹出时文本输入框下沉获取焦点并弹出软键盘

java 手机软键盘相关,判断软键盘状态,显示软键盘,隐藏软键盘