我想在Android appliation软键盘中添加“Go”按钮
对于搜索和其他相关场景,任何人都可以指导我如何实现这一目标吗?用例子。
任何帮助都会得到满足。
答案 0 :(得分:25)
最后我用了......
EditText SearchEditText =(EditText)findViewById(R.id.txtMapSearch);
SearchEditText.setOnEditorActionListener(new OnEditorActionListener(){
@Override
public boolean onEditorAction(TextView arg0, int arg1, KeyEvent arg2) {
if(arg1 == EditorInfo.IME_ACTION_SEARCH)
{
// search pressed and perform your functionality.
}
return false;
}
});
答案 1 :(得分:15)
如果您的问题是您有EditText或可编辑的TextView,并且您希望软键盘上的操作右键读取“Go”,则将此属性添加到EditText / TextView
android:imeActionLabel="actionGo"
请注意,它也必须是单行TextView,否则操作按钮将是回车选择器(箭头)。
android:singleLine="true"
答案 2 :(得分:1)
我正在为"发送":
做同样的事情在布局中使用此类:
公共类ActionEditText扩展了EditText { public ActionEditText(Context context) { 超级(上下文); }
public ActionEditText(Context context, AttributeSet attrs)
{
super(context, attrs);
}
public ActionEditText(Context context, AttributeSet attrs, int defStyle)
{
super(context, attrs, defStyle);
}
@Override
public InputConnection onCreateInputConnection(EditorInfo outAttrs)
{
InputConnection conn = super.onCreateInputConnection(outAttrs);
outAttrs.imeOptions &= ~EditorInfo.IME_FLAG_NO_ENTER_ACTION;
return conn;
}
}
在xml中:
<com.test.custom.ActionEditText
android:id="@+id/postED"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@android:color/transparent"
android:gravity="top|left"
android:hint="@string/msg_type_message_here"
android:imeOptions="actionSend"
android:inputType="textMultiLine"
android:maxLines="5"
android:padding="5dip"
android:scrollbarAlwaysDrawVerticalTrack="true"
android:textColor="@color/white"
android:textSize="20sp" />
答案 3 :(得分:1)
我用过
android:imeOptions="actionGo"
并使用
处理动作etSearch.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if (actionId == EditorInfo.IME_ACTION_GO || actionId == EditorInfo.IME_ACTION_DONE) {
//your functionality
// hide virtual keyboard
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(etSearch.getWindowToken(), InputMethodManager.RESULT_UNCHANGED_SHOWN);
return true;
}
return false;
}
});