在我的应用程序中,我使用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)
在这里你可以看到我尝试了两种方法:
有没有人有办法使用此SearchView进行自定义搜索操作?
更新:
如下面PJL所述:您不需要自定义对话框来覆盖此行为.普通的SearchView小部件可以正常工作.