2014-01-28 2 views

ответ

1

Я предполагаю, что вы хотите добавить EditText в свой ActionBar в качестве поля ввода фильтра.

  1. Определите меню:

    <?xml version="1.0" encoding="utf-8"?> 
    <menu xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:id="@+id/search" 
        android:icon="@android:drawable/search" 
        android:actionLayout="@layout/search" 
        android:showAsAction="never" 
        android:title="@string/about"> 
    </item> 
    </menu> 
    
  2. В onCreateOptionsMenu() метод добавить раскладку действий к вашему вопросу:

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
        getSupportMenuInflater().inflate(R.menu.actions, menu); 
    
        EditText add= (EditText)menu.findItem(R.id.search).getActionView() 
                    .findViewById(R.id.title); 
    
        add.setOnEditorActionListener(this);   
    
        return(super.onCreateOptionsMenu(menu)); 
    } 
    
  3. Определите действия макета search.xml:

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:orientation="horizontal"> 
    
        <TextView 
          android:layout_width="wrap_content" 
          android:layout_height="wrap_content" 
          android:text="Word:" 
          android:textAppearance="@android:style/TextAppearance.Medium"/> 
    
        <EditText 
          android:id="@+id/title" 
          android:layout_width="100sp" 
          android:layout_height="wrap_content" 
          android:layout_marginLeft="4dip" 
          android:layout_marginTop="4dip" 
          android:imeActionId="1337" 
          android:imeOptions="actionDone" 
          android:inputType="text"/>  
        </LinearLayout> 
    
  4. Ваша деятельность/фрагмент должен реализовать TextView.OnEditorActionListener или вы можете добавить в анонимный класс в onCreateOptionsMenu:

    @Override 
        public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { 
        v.getText(); //your input CharSequence to be handled by FilterQueryProvider for example    
        } 
    

    Является ли это решение для вас?

Смежные вопросы