如何在android Soft KeyBoard中添加Go按钮及其功能?

时间:2010-04-05 10:57:11

标签: android

我想在Android appliation软键盘中添加“Go”按钮

对于搜索和其他相关场景,任何人都可以指导我如何实现这一目标吗?用例子。

任何帮助都会得到满足。

4 个答案:

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