如何在Android SoftKeyBoard中添加Gobutton及其function?

我想在Android应用软键盘上放置“Go”button

对于search和其他相关的情况可以任何一个指导我如何实现这一目标? 用例子。

任何帮助将appriciated。

Solutions Collecting From Web of "如何在Android SoftKeyBoard中添加Gobutton及其function?"

终于我用了…

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

如果你的问题是你有一个EditText或可编辑的TextView,并且你想要软键盘上的动作右键读“Go”,那么将这个属性添加到你的EditText / TextView

 android:imeActionLabel="actionGo" 

注意它也必须是单行的TextView,否则动作button将是一个回车select符(箭头)。

 android:singleLine="true" 

我正在做同样的“发送”:

在你的布局中使用这个类:

public class ActionEditText extends EditText {public ActionEditText(Context context){super(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" /> 

我用了

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