【问题标题】:Search Edittext in Sherlock Acionbar在 Sherlock Acionbar 中搜索 Edittext
【发布时间】:2013-04-24 03:44:14
【问题描述】:

我在 sherlock 操作栏中的搜索视图有问题,所以我决定改用编辑文本。但是当我想使用编辑文本时,我的应用程序崩溃了(android 2.3)。如何在 android 2.3 的 sherlock 活动中使用搜索 edittext 或 searchview?

这是我的 onCreateOptionsMenu 函数:

public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater minflater = getSupportMenuInflater();
    minflater.inflate(R.menu.activity_main, menu);
    View v = (View) menu.findItem(R.id.search).getActionView();
    txtSearch = ( EditText ) v.findViewById(R.id.txt_search);
    txtSearch.setOnEditorActionListener(new OnEditorActionListener() {
        public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {

            return false;
        }
    });
    return true;
}

这是我的edittext xml源代码:

<EditText 
    android:id="@+id/txt_search"
    android:inputType="text"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"   
    android:cursorVisible="true"
    android:hint="@string/hint"
    android:imeOptions="actionDone"
    android:textColor="@android:color/black"
    android:textCursorDrawable="@android:color/black"     
    />

还有我的搜索菜单项:

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

如果有人知道在 sherlock 活动中使用 searchview 或在 sherlock 操作栏中使用 edittext 进行搜索的方法,请通知我。

【问题讨论】:

  • 我没有使用 sherlock 活动,但我使用 Textwatcher 使用 EditText 过滤我的列表(有点搜索!)希望它有所帮助。

标签: android android-edittext actionbarsherlock


【解决方案1】:

你应该使用

android:actionLayout="@layout/search_layout"

更多信息在这里:http://developer.android.com/guide/topics/ui/actionbar.html#ActionView

【讨论】:

    【解决方案2】:

    为我工作:

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
    getSupportMenuInflater().inflate(R.menu.your_menu, menu);
    
    // "0" is the number of menu item search in my example 
    menu.getItem(0).setActionView(R.layout.your_layout_search); //your layout with edittext
    EditText editSearch = (EditText) menu.getItem(0).getActionView().findViewById(R.id.edit_search);
    
    return super.onCreateOptionsMenu(menu);
    }
    

    【讨论】:

      猜你喜欢
      • 2012-11-13
      • 1970-01-01
      • 1970-01-01
      • 2012-06-04
      • 1970-01-01
      • 1970-01-01
      • 2017-11-21
      • 2012-07-26
      • 1970-01-01
      相关资源
      最近更新 更多