android的实践开发中,为了界面的美观,往往那些搜索框并没有带搜索按钮,而是调用了软键盘的搜索按钮,完成这次时间
  • 1
  • 2

这里写图片描述
这里写图片描述

好吧!直接上代码!

<EditText
        android:id="@+id/my_chat_seach"
        android:layout_width="fill_parent"
        android:layout_height="23dp"
        android:layout_centerVertical="true"
        android:layout_marginRight="6dip"
        android:layout_toRightOf="@id/my_seach_item_1_button"
        android:background="@color/white"
        android:gravity="center_vertical"
        android:hint="@string/search"
        android:imeOptions="actionSearch"
        android:singleLine="true"
        android:textColor="#8e8787"
        android:textSize="13sp" />

xml配置文件中 *重要的一个属性是: android:imeOptions=”actionSearch”,从而调用软键盘时,回车键就会显示搜索二字。
同时在androidMainfest.xml文件中在此Activity中写入 android:windowSoftInputMode=”adjustPan”,可以防止软键盘会把原来的界面挤上去的问题。
那么在该activity中,如何操作呢?

seachEditText = (EditText) findViewById(R.id.my_chat_seach);
watchSearch();

然后

/**
     * @方法说明:监控软键盘的的搜索按钮
     * @方法名称:watchSearch
     * @返回值:void
     */
    public void watchSearch() {
        seachEditText.setOnEditorActionListener(new OnEditorActionListener() {

            @Override
            public boolean onEditorAction(TextView v, int actionId,
                    KeyEvent event) {
                if (actionId == EditorInfo.IME_ACTION_SEARCH) {
                    // 先隐藏键盘
                    ((InputMethodManager) seachEditText.getContext()
                            .getSystemService(Context.INPUT_METHOD_SERVICE))
                            .hideSoftInputFromWindow(ChatFriendsGroudSeach.this
                                    .getCurrentFocus().getWindowToken(),
                                    InputMethodManager.HIDE_NOT_ALWAYS);
                    // 搜索,进行自己要的操作...
                    seachList(viewIndex);//这里是我要做的操作!
                    return true;
                }
                return false;
            }
        });
    }

好的!完成!