私のアプリケーションでは、カスタムSearchViewを備えたアクションバーを使用しています。ユーザーが検索フィールドのEnterボタンを押したときにカスタムコードを使用したいしかし、ユーザーがSearchViewでEnterボタンを押した瞬間を捉える方法は見つけられません。AndroidカスタムSearchViewの検索アクションを作成する
今私は検索操作をキャプチャするいくつかの方法を試しましたが、私はそれを見つけるように見えます。
マイボタンは次のように定義されています。
- :ここでは、I`ve 2つのアプローチを試みたことがわかります
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; } }
:これにより
<item android:id="@+id/action_bar_search" android:title="Search" android:icon="@drawable/ic_menu_search" android:showAsAction="always" android:actionViewClass="-package-.CustomSearchView" />
がCustomSearchViewクラスに属し送信ボタンからonclickイベントをキャッチします。それは SearchViewを開くために検索アイコンをクリックしたときにだけ起動したので、それは役に立たなかった。
- SearchView内のキーストロークをキャッチします。それはどちらかというと です。私がそこで押すキーからの応答はありませんでした。
誰でも、このSearchViewでカスタム検索アクションを作成する方法はありますか?
UPDATE:
PJLによって後述するように:あなたは、この動作をオーバーライドするためのカスタムダイアログを必要といけません。通常のSearchViewウィジェットはうまく動作します。
魅力的な作品です!助けてくれてありがとう! – Bart
優秀なヒント、悲しみを救ってくれてありがとう – Bostone
私はこれを使用して、アクティビティを起動せずにフラグメント内で検索を実行します。最良の結果を期待して:D – span