0

AutoCompleteTextView(Collapsible)を menuItem として持つアクション バー、 Delete のような他の menuItems が必要です。SherlockActionBar のライブラリを使用して、下位バージョン (2.2、2.3 など)と互換性を持たせています。

私の要件は表示することです

  1. actionBar の右端にある searchIcon (折りたたみ可能な AutoCompleteTextView 用) と

  2. 上記の searchIcon の左側にある削除アイコン。

ユーザーが searchIcon をタップすると、actionBar 全体をカバーするように拡張する必要があります (削除アイコンを非表示にします)。

iconsearch (AutoCompleteTextView 用) と deleteButton の両方をレイアウトにラップし、このレイアウトを SherlockActionBar ライブラリによって提供されるアクション バーのビューとして提供しようとしましたが、何も表示されませんでした。

次に、iconSearch (属性値は折りたたみ可能) と deleteButton を個別のメニュー項目 (SherlockActionBar のサンプルに表示) として追加しようとしましたが、actionSearch が表示されるだけです。

SherlockActionBar ライブラリを使用して同じものを実装する方法がわかりません。与えられたサンプルに従って同じことを実装しようとしましたが、これを達成できませんでした。

どんな助けでも大歓迎です...

前もって感謝します。

4

3 に答える 3

2

まず、検索 (layout_search.xml) から xml レイアウトを作成します。

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >

    <AutoCompleteTextView
        android:id="@+id/edit_search"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="Search" >

        <requestFocus />
    </AutoCompleteTextView>

    <ImageView
        android:id="@+id/img_clear"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="right"
        android:src="@drawable/ic_menu_clear" />

</FrameLayout>

あなたのメニューxmlで:

<item
    android:id="@+id/menu_search"
    android:icon="@drawable/ic_menu_search"
    android:showAsAction="always|collapseActionView"
    android:title="Search">
</item>

メニューの作成:

    @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            getSupportMenuInflater().inflate(R.menuyour_menu, menu);        
            menu.getItem(0).setActionView(R.layout.layout_search);
            AutoCompleteTextView search = (AutoCompleteTextView) mI.getActionView().findViewById(R.id.edit_search); 
            ImageView imgClear = (ImageView) menu.getItem(0).getActionView().findViewById(R.id.img_clear).setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                search.setText("");
            }
        });

            return super.onCreateOptionsMenu(menu);
        }
于 2013-04-15T14:55:43.220 に答える
1

既製のソリューションを使用する必要があると思いますcom.actionbarsherlock.widget.SearchView

menu.xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:id="@+id/menu_remove"
        android:icon="@drawable/content_remove"
        android:showAsAction="ifRoom"
        android:title="@string/menu_remove" />
    <item
        android:id="@+id/menu_search"
        android:actionViewClass="com.actionbarsherlock.widget.SearchView"
        android:icon="@drawable/action_search"
        android:showAsAction="always|collapseActionView"
        android:title="@string/search" />
</menu>

MainActivity.java

@Override
public boolean onCreateOptionsMenu(Menu menu) {

    // Inflate the options menu from XML
    MenuInflater inflater = getSupportMenuInflater();
    inflater.inflate(R.menu.main, menu);

    return super.onCreateOptionsMenu(menu);
}

結果: Android ActionBarSherlock 検索 http://img6.imageshack.us/img6/7448/androidsearchactionbar.png

于 2013-04-16T09:25:10.877 に答える