私が持っていた質問への答えを一緒に送りたかったのです。携帯電話の検索ボタンを使用して、resフォルダーのレイアウトで定義されているビューを操作したかったのです。基本的にonSearchListenerを作成します。ここでは、検索ボタンを使用してレイアウト内のボタンを押す方法の例を示します。
public class SearchIntercept extends Activity{
boolean activateSearch;
@Override
public boolean onKeyDown(int keycode, KeyEvent e) {
switch(keycode) {
case KeyEvent.KEYCODE_SEARCH:
SearchManager mSearch = (SearchManager)getSystemService(Context.SEARCH_SERVICE);
onSearchRequested();
activateSearch = true;
mSearch.stopSearch();
return true;
}
return super.onKeyDown(keycode, e);
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.search_example);
SearchManager mSearch = (SearchManager)getSystemService(Context.SEARCH_SERVICE);
final Button button = (Button) findViewById(R.id.Button_1);
// Search Listener
mSearch.setOnCancelListener(new SearchManager.OnCancelListener() {
@Override
public void onCancel() {
if (activateSearch == ture){
button.setPressed(true);
activateSearch = false;
}
}
});
}
}
したがって、ここで行うのは、キー入力を取得してから検索要求を開始することです。次に、そのリクエストをすぐにキャンセルします。これにより、SearchManagerに組み込まれているOnCancelListenerを使用できるようになります。この時点で、通常のリスナーと同じように、リクエストを受け取って、好きなことを行うことができます。これを行う別の方法がある場合は、回答でお知らせください。また、これを別の方法で投稿する必要がある場合は、お知らせください。残念ながら、私はまだ初心者です。