0

ユーザーがデバイス検索データの検索ボタンをクリックしたときに、アプリに検索ビューを実装したいと考えています。しかし、IDをデフォルトの検索編集テキストに設定する方法とそのIDを取得する方法がわかりません.findviewbyidで編集テキストのIDを取得することは知っていますが、その編集テキストのIDはわかりません

4

3 に答える 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 に答える