4

ユーザーが組み込みの検索ダイアログでアプリケーション アイコンをクリックしたときにキャプチャする方法はありますか? カスタム ダイアログではなく、Android 組み込みの検索ダイアログを指していることに注意してください。

4

2 に答える 2

5

いいえ、SearchDialogのアプリ アイコンをクリック可能にする方法はありません。

しかし、楽しみのために、仕事を終わらせるハックな回避策が存在すると仮定しましょう。クールです。目的の動作が得られました...しかし、次の 2 つの問題があります。

  1. の動作は、SearchDialog他の Android デバイスと一致しません。ユーザーはすべての Android デバイスで検索インターフェイスが同じように機能することを期待しているため、これはユーザー エクスペリエンスを低下させます。

  2. アプリは内部 API を利用するようになりましたが、新しい SDK がリリースされたときに一貫性が保たれる場合とそうでない場合があります。ご存じのとおり、Android チームはアプリのアイコンidを から@+id/search_app_iconに変更する可能性があります@+id/search_home_icon。あなたのハックは内部 API に依存しているため、そのような変更により、アプリを実行している新しいデバイスがクラッシュします (ランタイム検索でsearch_app_iconが返されるためnull)。

    さらに、Samsung や HTC などの企業は、新しいデバイスを一般に公開する前に、内部 API を自由に変更できます。次の Samsung Galaxy では、クラスが完全に再実装されたりSearchDialog、UI/テーマが更新されたりする可能性があります。確実なことはわかりません。

したがって、基本的にはできません...そしてそうしようとするべきではありません。


退屈だからといって、答えにたどり着いたソースコードは次のとおりです。

  1. のソース コードを確認すると、 が をプライベート インスタンス変数として保持しているSearchManager.javaことに注意してください。SearchManagerSearchDialogmSearchDialog

  2. のソース コードを調べて、がアプリ アイコンをプライベート インスタンス変数として参照してSearchDialog.javaいることに注目してください。また、 が への呼び出しによって変数を初期化することにも注意してくださいSearchDialogmAppIconSearchDialogfindViewById

  3. のソース コードを調べて、がデフォルトでに設定されていないsearch_bar.xmlことに注意してください。パブリック SDK には this の動作を変更する (メソッドがないため、クリック可能にする信頼できる方法はありません。ImageViewclickableView

于 2012-07-03T19:15:21.053 に答える
0

Android のパブリック SDK を使用してこれを行うことは不可能だと確信しています。

唯一の解決策は独自のカスタム ダイアログを作成することだと思いますが、組み込みのダイアログではこれを達成できないことを恐れています。

于 2012-07-04T11:51:32.200 に答える