0

クリックしたときにアクションバーの検索ビューアイコンを変更する方法を知る必要がありますか? 私は現在「Theme.Holo.Light」を使用していますが、このテーマはもう変更したくありません。クリックしたときにActionBarのSearchViewアイコンを変更できる方法はありますか?

4

1 に答える 1

1

はい、それは可能です。あなたがすべきことは、検索メニューオプションのカスタムレイアウトを作成することです。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@android:color/transparent"
    android:orientation="vertical" >

    <ImageView

        android:id="@+id/img_search"
        android:layout_width="40dip"
        android:layout_height="40dip" />

</LinearLayout>

メニューオプションでこのレイアウトを使用してください。

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >

<item
        android:id="@+id/menuSearch"
        android:actionLayout="@layout/searchLayout"
        android:showAsAction="always"
        android:title="search"/>

</menu>

メニューオプションからビューを取得するだけです:

    @Override
        public boolean onPrepareOptionsMenu( Menu menu )
        {
          final MenuItem item = menu.findItem( R.id.menuSearch );

         LinearLayout layoutSearchView = (LinearLayout) item.getActionView();

         ImageView img = (ImageView) layoutSearchView.findViewById( R.id. img_search);

       // now you have your image of search . on click you can change the image using set onclick listener of image or do what ever you want with the layout.

       img.setOnClickListener( new View.OnClickListener()
                {
                    @Override
                    public void onClick( View v )
                    {
                        // change your image
                    }
                } );
    }

タイプミスでごめんなさい。これが役立つことを願っています。

注 :onPrepareOptionsMenuこのスニペットでイメージ コードを変更していますが、メソッドを作成して onPrepareOptionsMenu からメニュー項目を渡し、そのメソッドでタスクを実行することをお勧めします。

于 2013-10-11T05:08:52.347 に答える