相关疑难解决方法(0)

Android创建自定义SearchView搜索操作

在我的应用程序中,我使用Action Bar,其中包含自定义SearchView.我想在用户点击搜索字段中的输入按钮时使用一些自定义代码.但我无法找到一种方法来捕捉用户点击SearchView中的输入按钮的那一刻.

现在我尝试了几种捕获搜索操作的方法,但我似乎无法找到它.

我的按钮定义如下:

<item
    android:id="@+id/action_bar_search"
    android:title="Search"
    android:icon="@drawable/ic_menu_search"
    android:showAsAction="always"
    android:actionViewClass="-package-.CustomSearchView"
    />
Run Code Online (Sandbox Code Playgroud)

这属于CustomSearchView类:

public class CustomSearchView extends SearchView implements OnClickListener, android.view.View.OnKeyListener{

    public CustomSearchView(Context context) {
        super(context);
        this.setOnSearchClickListener(this);
        this.setSubmitButtonEnabled(true);
            this.setOnClickListener(this);
        this.setOnKeyListener(this);
    }

    @Override
    public void onClick(View v) {

        Log.d("SEARCH", "Onclick! " + this.getQuery());
    }

    @Override
    public boolean onKey(View v, int keyCode, KeyEvent event) {
        // TODO Auto-generated method stub

        Log.d("SEARCH", "Search onkey");
        return false;
    }

}
Run Code Online (Sandbox Code Playgroud)

在这里你可以看到我尝试了两种方法:

  1. 从提交按钮捕获onclick事件.这不起作用,因为它只是在我点击搜索图标打开SearchView时才触发.
  2. 在SearchView中捕获击键.那也没有用.我在那里按下的任何键都没有响应.

有没有人有办法使用此SearchView进行自定义搜索操作?

更新:

如下面PJL所述:您不需要自定义对话框来覆盖此行为.普通的SearchView小部件可以正常工作.

android android-3.0-honeycomb

13
推荐指数
1
解决办法
2万
查看次数

标签 统计

android ×1

android-3.0-honeycomb ×1