рд╣реИрд▓реЛ, рд╣рдмреНрд░рд╣рд╛рдм!
рдореИрдВрдиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ
рд▓рд┐рдЦрд╛ рд╣реИ рдХрд┐ Google рдиреЗ ActionBar рд╕рдкреЛрд░реНрдЯ рдХреЛ рдЕрдкрдиреА рд╕рдкреЛрд░реНрдЯ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рдЬреЛрдбрд╝рд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдмрддрд╛рдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдПред рдХрдЯреМрддреА рдХреЗ рддрд╣рдд - рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд╕рд╣реА рдЖрдпрд╛рдд рдФрд░ SupportActionBar рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдореБрдЦреНрдп рдмрд┐рдВрджреБрдУрдВ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢ред
рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЖрдпрд╛рдд рдХрд░реЗрдВ
рд╣рдорд╛рд░реЗ ActionBar рдХреЛ рдкреБрд░рд╛рдиреЗ рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ
Theme.AppCompat рд╕реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдереАрдо рдХреЛ рдЗрдирд╣реЗрд░рд┐рдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдмреЗрд╢рдХ, рдЗрд╕реЗ рдХрд╣реАрдВ рд╕реЗ рднреА рдирд╣реАрдВ рд▓рд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдкрд░рд┐рдпреЛрдЬрдирд╛ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рдЧреНрд░рд╣рдг рдФрд░ рдПрдВрдбреНрд░реЙрдЗрдб рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЗ рд▓рд┐рдП рдЕрдВрдЧреНрд░реЗрдЬреА рдореЗрдВ рдореВрд▓ рдирд┐рд░реНрджреЗрд╢
рдпрд╣рд╛рдВ рд╣реИрдВ (
рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рд╕рд╛рде рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЬреЛрдбрд╝рдирд╛ )):
1. рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рд╣рдордиреЗ рд╕рдорд░реНрдерди рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрд╕рдбреАрдХреЗ рдкреНрд░рдмрдВрдзрдХ рдЦреЛрд▓реЗрдВ рдФрд░ рдПрдХреНрд╕реНрдЯреНрд░рд╛рд╕ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдмрд╣реБрдд рдиреАрдЪреЗ рддрдХ рд╕реНрдХреНрд░реЙрд▓ рдХрд░реЗрдВред рдЗрд╕рдореЗрдВ рдПрдХ Android рд╕рдорд░реНрдерди рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЖрдЗрдЯрдо рд╣реИ - рд╣рдореЗрдВ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╣рдо рдЗрд╕реЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд░рддреЗ рд╣реИрдВ (рдЕрдм - Revред 18), рдпрджрд┐ рдЖрдкрдиреЗ рдкрд╣рд▓реЗ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред
2. рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛? рдЕрдЪреНрдЫрд╛ рдХрд┐рдпрд╛ред рдЕрдм
рдлрд╝рд╛рдЗрд▓> рдирдпрд╛> рдПрдВрдбреНрд░реЙрдЗрдб рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ,
рдореМрдЬреВрджрд╛ рдХреЛрдб рд╕реЗ рдПрдВрдбреНрд░реЙрдЗрдб рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЪреБрдиреЗрдВ рдкрд░ рдХреНрд▓рд┐рдХ
рдХрд░реЗрдВ ред
3.
рдмреНрд░рд╛рдЙрдЬрд╝ ... рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ рдЙрд╕ рдлрд╝реЛрд▓реНрдбрд░ рдХреА рддрд▓рд╛рд╢ рдХрд░реЗрдВ рдЬрд┐рд╕рдХреА рд╣рдореЗрдВ рдЬрд╝рд░реВрд░рдд рд╣реИред рдЗрд╕рдХрд╛ рдорд╛рд░реНрдЧ рдХреБрдЫ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ: <рдЕрдкрдиреЗ SDK> / рдЕрддрд┐рд░рд┐рдХреНрдд / Android / рд╕рдорд░реНрдерди / v7 / appcompat /ред рд╕реВрдЪреА рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдЖрдЗрдЯрдо рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ рдФрд░ рд╕рдорд╛рдкреНрдд рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред
4. рдЕрдм рдЖрдкрдХреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ рдореЗрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ
android-support-v7-appcompat рджреЗрдЦрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕реЗ рдЦреЛрд▓реЗрдВ, рджреЛрдиреЛрдВ .jar рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ
рд▓рд┐рдмрд░ / рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ, рд░рд╛рдЗрдЯ-рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░
рдмрд┐рд▓реНрдб рдкрд╛рде> рдРрдб рдЯреВ рдмрд┐рд▓реНрдб рдкрд╛рде рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред
5. рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкрд░ рд░рд╛рдЗрдЯ-рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ, рдмрд┐рд▓реНрдб рдкрд╛рде> рдХрдиреНрдлрд░реНрдо рдмрд┐рд▓реНрдб рдкрд╛рде рдЪреБрдиреЗрдВред
6.
рдСрд░реНрдбрд░ рдФрд░ рдПрдХреНрд╕рдкреЛрд░реНрдЯ рдЯреИрдм рдореЗрдВ
рдмрд┐рд▓реНрдб рдкрд╛рде рдкреЗрдЬ рдкрд░, рдЙрди рджреЛ .jar рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░реЗрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЕрднреА рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ рдФрд░
рдПрдВрдбреНрд░реЙрдЗрдб рдбрд┐рдкреЗрдВрдбреЗрдВрд╕реАрдЬ рдХреЛ рдЕрдирдЪреЗрдХ рдХрд░реЗрдВред
7. рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рд╕рд╣реЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдареАрдХ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рдпрд╣реА рд╣реИ - рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИ!
рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдирд┐рд░реНрдорд╛рдг
рдЕрдм рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдмрдирд╛рдПрдВ, рдЬреЛ рд╣рдо рдХрд░реЗрдВрдЧреЗред рдирд╛рдо SupportActionBarDemo рд╣реИ, рдкреИрдХреЗрдЬ com.habrahabr.sabd рд╣реИ, рдиреНрдпреВрдирддрдо рдПрдкреАрдЖрдИ рд╕реНрддрд░ 7 рд╣реИ (рдпреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдВ рд╣реИрдВ)ред рдПрдХ рдЧрддрд┐рд╡рд┐рдзрд┐ рдмрдирд╛рдПрдБ, рдирд╛рдо MainActivity рд╣реИ, рд▓реЗрдЖрдЙрдЯ рдореБрдЦреНрдп рд╣реИред
рдЕрдм рд╣рдо рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░ рд░рд╛рдЗрдЯ-рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ рдФрд░
рдЧреБрдг рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВред
рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╢реАрд░реНрд╖рдХ рдХреЗ рддрд╣рдд
Android рдкреГрд╖реНрда рдкрд░,
рдЬреЛрдбрд╝реЗрдВ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рд╡рд╛рд▓реА рд╡рд┐рдВрдбреЛ рдореЗрдВ
android-support-v7-appcompat рдЪреБрдиреЗрдВ рдФрд░ рдлрд┐рд░ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рд╕рд╣реЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдлрд┐рд░ рд╕реЗ
рдареАрдХ рдХрд░реЗрдВред рдЕрдм рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ!
рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рд╣реИ
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ,
Res / values тАЛтАЛ/ styles.xml ,
res / values-v11 / styles.xml ,
res / values-v14 / styles.xml (
DeusModus рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж) рдкрд░ рдЬрд╛рдПрдВ рдФрд░ рд▓рд┐рдЦреЗрдВ
<style name="AppBaseTheme" parent="@style/Theme.AppCompat.Light" > . . .
рдЕрдм ActionBar Android рдХреЗ рдХрд┐рд╕реА рднреА рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ред
Res / рдорд╛рди / strings.xml рдЦреЛрд▓реЗрдВ рдФрд░ рд▓рд╛рдЗрдиреЗрдВ рдЬреЛрдбрд╝реЗрдВ:
<string name="action_item_1">Item 1</string> <string name="action_item_2">Item 2</string> <string name="action_item_3">Item 3</string>
Res / рдореЗрдиреВ / main.xml рдЦреЛрд▓реЗрдВ рдФрд░ рд╡рд╣рд╛рдВ рд▓рд┐рдЦреЗрдВ:
<menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:sabd="http://schemas.android.com/apk/res-auto" > <item android:id="@+id/action_settings" android:title="@string/action_settings" android:icon="@android:drawable/ic_menu_add" sabd:showAsAction="always" /> <item android:id="@+id/action_item_1" android:title="@string/action_item_1" android:icon="@android:drawable/ic_menu_delete" sabd:showAsAction="ifRoom" /> <item android:id="@+id/action_item_2" android:title="@string/action_item_2" android:icon="@android:drawable/ic_menu_add" sabd:showAsAction="ifRoom|withText" /> <item android:id="@+id/action_item_3" android:title="@string/action_item_3" android:icon="@android:drawable/ic_menu_add" sabd:showAsAction="never" /> </menu>
рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ рдЖрдЗрдХрди рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╣реИрдВ, рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ред рдореИрдВ рдЕрдм рднреА рд▓рд┐рдЦрддрд╛ рд╣реВрдВ рдХрд┐
sabd: showAsAction рд╡рд┐рд╢реЗрд╖рддрд╛ рдХрд╛ рдЕрд░реНрде рд╣реИ:
рд╣рдореЗрд╢рд╛ - рддрддреНрд╡ рд╣рдореЗрд╢рд╛ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛, рдЕрдЧрд░ рдкрд░реНрдпрд╛рдкреНрдд рдЬрдЧрд╣ рдирд╣реАрдВ рд╣реИ, рддреЛ рд╢реАрд░реНрд╖рдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдирд╣реАрдВ рд╣реЛрдЧрд╛
ifRoom - рддрддреНрд╡ рддрднреА рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ рдЬрдм рдЗрд╕рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рди рд╣реЛрдЧрд╛
рдХрднреА рдирд╣реАрдВ - рддрддреНрд╡ рдХрднреА рднреА рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрдЧрд╛, рдЗрд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдореЗрдиреВ рдмрдЯрди рдпрд╛ рдПрдХреНрд╢рдирдмреЙрд▓рд░ рдкрд░ рдЕрддрд┐рдкреНрд░рд╡рд╛рд╣ рдмрдЯрди рдХреЛ рджрдмрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдпрджрд┐ рдХреЛрдИ рдкрд╣рд▓реА рдирд╣реАрдВ рд╣реИ
withText - рддрддреНрд╡ рдХреЛ рдХреЗрд╡рд▓ рдЗрд╕рдХреЗ рд╢реАрд░реНрд╖рдХ рдХреЗ рд╕рд╛рде рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛
рдкрддрдиActionView - рдПрдХ рддрддреНрд╡ рдХреЛ рдПрдХ рдмрдЯрди рдореЗрдВ рдврд╣рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рдПрдХреНрд╢рдирдмрд╛рд░ рдХреА рдкреВрд░реА рдЪреМрдбрд╝рд╛рдИ рддрдХ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдлрд┐рд░ рдореИрдВ рдЗрд╕рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреВрдВрдЧрд╛
рдЕрдм рд╣рдо рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реАрдзреЗ рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВред рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЛрдб рдореЗрдВ рдкрд╣рд▓реА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐
рдлреИрд▓реА рд╣реБрдИ рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЛ
ActionBarActivity рдХреЗ рд╕рд╛рде рдмрджрд▓рдирд╛ рдФрд░ рдЖрдпрд╛рдд рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ред ADT рдХреЗ рд╣рд╛рд▓ рдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ, рдПрдХ рдЧрддрд┐рд╡рд┐рдзрд┐ рдмрдирд╛рддреЗ рд╕рдордп,
onCreateOptionsMenu (рдореЗрдиреВ рдореЗрдиреВ) рд╡рд┐рдзрд┐ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╣рдо рдореЗрдиреВ рдмрдирд╛рддреЗ рд╣реИрдВ:
import android.os.Bundle; import android.support.v7.app.ActionBarActivity; import android.view.Menu; public class MainActivity extends ActionBarActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { Log.d("MENU", "Cliced MenuItem is " + item.getTitle()); return super.onOptionsItemSelected(item); } }
рд╣рдо рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдиреНрдЪ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╣рдорд╛рд░реЗ ActionBar рджреЗрдЦрддреЗ рд╣реИрдВ:

рдЖрдЗрдЯрдо 2 рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджрд┐рдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдЬрдЧрд╣ рдирд╣реАрдВ рдереАред рдЖрдЗрдЯрдо 3 рдХрд┐рд╕реА рднреА рдкрд░рд┐рд╕реНрдерд┐рддрд┐ рдореЗрдВ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо
рд╕рдмрдб рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ
: showAsAction = "never" рд╡рд┐рд╢реЗрд╖рддрд╛ред рдЖрдк рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ "рдореЗрдиреВ" рдмрдЯрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрдиреНрд╣реЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЖрдк рдореЗрдиреВ рдЖрдЗрдЯрдореЛрдВ рдкрд░ рдХреНрд▓рд┐рдХ рдЙрд╕реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреИрд╕реЗ рдХрд┐ рдкрд╣рд▓реЗ -
onOptionsItemSelected (MenuItem рдЖрдЗрдЯрдо) рд╡рд┐рдзрд┐ рдореЗрдВред рдЖрдк рдПрдХ рд╣реА рд╡рд┐рдзрд┐ рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЖрдЗрдХрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рд╕рдВрднрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рдореЗрдВ android.R.id.home рдЖрдИрдбреА рд╣реИред
ActionBar рдореЗрдВ рдЕрдк рдмрдЯрди рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ
ActionBar.setDisplayHomeAsUpEnabled (рдмреВрд▓рд┐рдпрди рд╢реЛрд╣реЛрдордПрд╕реНрдк) рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

рдЦреЛрдЬ
рдХрднреА-рдХрднреА рдЖрдкрдХреЛ рдПрдХ рдЦреЛрдЬ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬреИрд╕реЗ рдХрд┐ Google Play рдореЗрдВред ActionView рдмрдЪрд╛рд╡ рдХреЗ рд▓рд┐рдП рдЖрддрд╛ рд╣реИред
Res / рдореЗрдиреВ / main.xml рдЦреЛрд▓реЗрдВ рдФрд░ рдЕрдВрддрд┐рдо 3 рддрддреНрд╡реЛрдВ рдХреЛ рд╣рдЯрд╛ рджреЗрдВ - рд╣рдореЗрдВ рдЙрдирдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдФрд░ рд╡реЗ рдЬрдЧрд╣ рд▓реЗрдВрдЧреЗред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рд╣рдо рдПрдХ рдирдпрд╛ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ:
<item android:id="@+id/action_search" android:title="@string/action_search" android:icon="@android:drawable/ic_menu_search" sabd:showAsAction="always|collapseActionView" sabd:actionViewClass="android.support.v7.widget.SearchView" />
sabd рд╡рд┐рд╢реЗрд╖рддрд╛
: actionViewClass = "android.support.v7.widget.SearchView" рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╕рд╛рдорд╛рдиреНрдп рдХреЗ рдмрдЬрд╛рдп рдХрд┐рд╕ рджреГрд╢реНрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рд╕рдмрдб рдореЗрдВ рдкрд╛рда
рдврд╛рдБрдЪрд╛ рджреГрд╢реНрдп: showAsAction рд╡рд┐рд╢реЗрд╖рддрд╛ рджрд░реНрд╢рд╛рддреА рд╣реИ рдХрд┐ ActionView рдХреЛ рдПрдХ рдмрдЯрди рдкрд░ рдЫреЛрдЯрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдПрдХ рдмрдЯрди рдХреЗ рдХреНрд▓рд┐рдХ рдкрд░ рдкреВрд░реА рдЪреМрдбрд╝рд╛рдИ рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЧрддрд┐рд╡рд┐рдзрд┐ рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП,
рдореБрдЦреНрдпрддрд╛ рдХреЛрдб рдмрджрд▓реЗрдВ:
import android.os.Bundle; import android.support.v4.view.MenuItemCompat; import android.support.v7.app.ActionBarActivity; import android.support.v7.widget.SearchView; import android.support.v7.widget.SearchView.OnQueryTextListener; import android.view.Menu; import android.view.MenuItem; public class MainActivity extends ActionBarActivity implements OnQueryTextListener { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main, menu); MenuItem searchItem = menu.findItem(R.id.action_search); SearchView searchView = (SearchView) MenuItemCompat.getActionView(searchItem); searchView.setQueryHint(""); searchView.setOnQueryTextListener(this); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { Log.d("MENU", "Cliced MenuItem is " + item.getTitle()); return super.onOptionsItemSelected(item); } public boolean onQueryTextChange(String text_new) { Log.d("QUERY", "New text is " + text_new); return true; } public boolean onQueryTextSubmit(String text) { Log.d("QUERY", "Search text is " + text); return true; } }
рд╣рдо рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдиреНрдЪ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рджреЗрдЦрддреЗ рд╣реИрдВ:

рдЦреЛрдЬ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ:

рд╡реИрд╕реЗ, рдХреАрдмреЛрд░реНрдб рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкреНрд░рдХрдЯ рд╣реЛрддрд╛ рд╣реИред рдЖрдк ActionBar рдХреЗ рдмрд╛рдИрдВ рдУрд░ рдКрдкрд░ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рдпрд╛ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдмрдЯрди рдХреЛ рджрдмрд╛рдХрд░ рдЦреЛрдЬ рдореЛрдб рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓ рд╕рдХрддреЗ рд╣реИрдВред
OnQueryTextChange () рд╡рд┐рдзрд┐ рдореЗрдВ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдЕрдЧрд▓рд╛ рдЕрдХреНрд╖рд░ рдЯрд╛рдЗрдк рдХрд░рдиреЗ рдкрд░ рд╣рдореЗрдВ рдЗрдирдкреБрдЯ рдлрд╝реАрд▓реНрдб рд╕реЗ рдЯреЗрдХреНрд╕реНрдЯ рдорд┐рд▓рддрд╛ рд╣реИред
OnQueryTextSubmit (рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкрд╛рда) рд╡рд┐рдзрд┐ рдореЗрдВ, рд╣рдореЗрдВ рд╡рд╣ рдкрд╛рда рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рддрд▓рд╛рд╢ рд╣реИред SearchView рдХреЗ рдкрд╛рд╕ рдпреЗ рдЙрдкрдпреЛрдЧреА рддрд░реАрдХреЗ рд╣реИрдВ:
рд╕реЗрдЯрд┐рд╡рд┐рдУ (CharSequence query, рдмреВрд▓рд┐рдпрди рд╕рдмрдорд┐рдЯ) - рдЗрдирдкреБрдЯ рдлрд╝реАрд▓реНрдб рдореЗрдВ рдЯреЗрдХреНрд╕реНрдЯ рдХреЛ рдЙрд╕рдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ рдЗрд╕реЗ рдЕрдВрддрд┐рдо рдмрдирд╛рддрд╛ рд╣реИ (рдЦреЛрдЬ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИ)
getQuery () - рд╡рд╣ рдкрд╛рда рд▓реМрдЯрд╛рддрд╛ рд╣реИ рдЬреЛ рдЕрдм рдЗрдирдкреБрдЯ рдлрд╝реАрд▓реНрдб рдореЗрдВ рд╣реИ
setQueryHint (CharSequence hint) - рдЯреВрд▓рдЯрд┐рдк рдХреЛ рдЗрд╕рдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
getQueryHint () - рдПрдХ рд╕рдВрдХреЗрдд рджреЗрддрд╛ рд╣реИ
setSuggestionsAdapter (CursorAdapter рдЕрдбреИрдкреНрдЯрд░) - рдПрдХ рдбреНрд░реЙрдк-рдбрд╛рдЙрди рд╕реВрдЪреА рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рдЬреИрд╕реЗ AutoCompleteText
ViewgetSuggestionsAdapter () - рдЗрд╕ рд╕реВрдЪреА рдХрд╛ рдПрдбрд╛рдкреНрдЯрд░ рд▓реМрдЯрд╛рддрд╛ рд╣реИ
setOnCloseListener (SearchView.OnCloseListener рд╢реНрд░реЛрддрд╛) - рдЗрд╕ рдкрд░ рдПрдХ рдХрд░реАрдмреА рд╣реИрдВрдбрд▓рд░ рдбрд╛рд▓рддрд╛ рд╣реИ
setOnSuggestionListener (SearchView.OnSuggestionListener рд╢реНрд░реЛрддрд╛) - рдЗрд╕ рдкрд░ рдбреНрд░реЙрдк-рдбрд╛рдЙрди рд╕реВрдЪреА рдЖрдЗрдЯрдо рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реИрдВрдбрд▓рд░ рдбрд╛рд▓рддрд╛ рд╣реИред
рдирд┐рд╖реНрдХрд░реНрд╖
рдФрд░ Google рдХреЗ рд▓реЛрдЧ, рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд┐рдП рдЧрдП, рдЕрдкрдиреЗ рдУрдПрд╕ рдХреЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдордд рднреВрд▓рдирд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЯреБрдХрдбрд╝реЗ, ViewPager рдФрд░ API v4 рдХреЗ рд╕рд╛рде рдиреЗрд╡реАрдЧреЗрд╢рди рдЙрдкрд▓рдмреНрдз рд╣реИрдВ, API v7 рдХреЗ рд╕рд╛рде рдПрдХреНрд╢рдирдмрд╛рд░ред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдм рдПрдВрдбреНрд░реЙрдЗрдб 2.3 рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХреЗ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо - "рдХрдВрдкрдиреА рдХреЗ рд▓рд┐рдП"ред
рдореБрдЭреЗ рдЦреБрд╢реА рд╣реЛрдЧреА рдЕрдЧрд░ рдпрд╣ рд▓реЗрдЦ рдХрд┐рд╕реА рдХреА рдорджрдж рдХрд░рддрд╛ рд╣реИ :-)
рднрд╛рдЧ 2 - рдЯреИрдм рдФрд░ рдбреНрд░реЙрдк-рдбрд╛рдЙрди рд╕реВрдЪреА рдХреЗ рд╕рд╛рде рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░рдирд╛
рднрд╛рдЧ 3 - рдЙрдиреНрдирдд рд╕реБрд╡рд┐рдзрд╛рдПрдБ