ユーザーがデバイス検索データの検索ボタンをクリックしたときに、アプリに検索ビューを実装したいと考えています。しかし、IDをデフォルトの検索編集テキストに設定する方法とそのIDを取得する方法がわかりません.findviewbyidで編集テキストのIDを取得することは知っていますが、その編集テキストのIDはわかりません
質問する
326 次
3 に答える
1
あなたが望むことを行うには2つの方法があります:-
1.次のURLを使用するAndroidのデフォルトの方法: -Android
検索セットアップ
Android検索ダイアログ
2.カスタムビューをアクションバーで検索ビューとして使用する(したがって、アクティビティまたはフラグメントのいずれかから検索できます):-
アプリケーションの menu.xml ファイルにメニューを追加します
<item
android:id="@+id/search"
android:actionLayout="@layout/actionbarsearchlayout"
android:icon="@drawable/ic_action_search"
android:orderInCategory="1"
android:showAsAction="collapseActionView|ifRoom"
android:title="Search"/>
以下はactionbarsearchlayout.xmlです
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="match_parent" >
<EditText
android:id="@+id/searchTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:hint="@string/search_hint"
android:imeActionLabel="search"
android:imeOptions="actionSearch"
android:singleLine="true"
android:textColorHint="#C0C0C0" />
</RelativeLayout>
オプション メニューを展開する場所で、次の操作を行います。OnOptionitemSelected() 内
case R.id.search:
View view = item.getActionView();
final EditText search = (EditText) view
.findViewById(R.id.searchTitle);
search.setText("");
search.setOnEditorActionListener(new OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId,
KeyEvent event) {
boolean handled = false;
if (event != null) {
if (event.getAction() !=
KeyEvent.ACTION_DOWN) {
return handled;
} else if (actionId ==
EditorInfo.IME_ACTION_SEARCH
|| event.getKeyCode() ==
KeyEvent.KEYCODE_ENTER) {
//do whatever you want to search
//with query
handled = true;
InputMethodManager imm =
(InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(
search.getWindowToken(), 0);
}
}
return handled;
}
});
于 2013-08-20T07:53:29.800 に答える