Android рдЦреЛрдЬ рд╕рдВрд╡рд╛рдж рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред рд╕рд░рд▓ рдЖрд╡реЗрджрди рдЙрджрд╛рд╣рд░рдг

рдЫрд╡рд┐



рдпрд╣ рд▓реЗрдЦ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╣реИ рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛ рд╣реИрд▓реЛрд╡рд░реНрд▓реНрдб рд▓рд┐рдЦ рдЪреБрдХреЗ рд╣реИрдВ рдФрд░ рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЧрддрд┐рд╡рд┐рдзрд┐ рдФрд░ рдЖрд╢рдп рдХреНрдпрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рд╕рд╛рде рд╡рд╣ рд╕реНрдерд╛рди рдЬрд╣рд╛рдВ рдкрд░ рд╕реНрдерд┐рдд рд╣реИ рдФрд░ рд▓реЗрдЖрдЙрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИред рдЕрдиреНрдпрдерд╛, рдЖрдк рдЗрд╕ рд╕рд╛рдордЧреНрд░реА рдХреЛ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, developer.android.com рдкрд░ред



рд▓реЗрдЦ рдПрдХ рд╕рд░рд▓ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдврд╛рдВрдЪреЗ рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЦреЛрдЬ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рддрдВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдкрдврд╝рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдк рдЕрдкрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рднреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдпрд╣ рдорд╛рдирдХ рдПрдВрдбреНрд░реЙрдЗрдб рд╕рд░реНрдЪ рдбрд╛рдпрд▓реЙрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбреЗрдЯрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЦреЛрдЬ рдХрд░реЗред





рд╕рд┐рджреНрдзрд╛рдВрдд рдХреА рдмрд┐рдЯ



Android рдЦреЛрдЬ рд╕рдВрд╡рд╛рдж (рдЗрд╕рдХреЗ рдмрд╛рдж "рдЦреЛрдЬ рд╕рдВрд╡рд╛рдж" рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрджрд░реНрднрд┐рдд) рдЦреЛрдЬ рдврд╛рдВрдЪреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдбреЗрд╡рд▓рдкрд░ рдХреЛ рдпрд╣ рд╕реЛрдЪрдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдХреИрд╕реЗ рдЖрдХрд░реНрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП рдпрд╛ рдХрд┐рд╕реА рдЦреЛрдЬ рдХреНрд╡реЗрд░реА рдХреЛ рдХреИрд╕реЗ рдкрдХрдбрд╝рд╛ рдЬрд╛рдПред SearchManager рдЖрдкрдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░реЗрдЧрд╛ред



рдЗрд╕рд▓рд┐рдП, рдЬрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЦреЛрдЬ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИ, SearchManager рдПрдХ рдЖрд╢рдп рдмрдирд╛рддрд╛ рд╣реИ, рдФрд░ рдЙрд╕реЗ рдЧрддрд┐рд╡рд┐рдзрд┐ рдореЗрдВ рдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдбреЗрдЯрд╛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╝рд┐рдореНрдореЗрджрд╛рд░ рд╣реИ (рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЕрдиреБрд░реЛрдз рд╕реНрд╡рдпрдВ рдПрдХреНрд╕реНрдЯреНрд░рд╛ рдореЗрдВ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИ)ред рдпрд╣реА рд╣реИ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЖрд╡реЗрджрди рдореЗрдВ рдХрдо рд╕реЗ рдХрдо рдПрдХ рдЧрддрд┐рд╡рд┐рдзрд┐ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП рдЬреЛ рдЦреЛрдЬ рдЗрдВрдЯреЗрдВрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреА рд╣реИ, рдПрдХ рдЦреЛрдЬ рдХрд░рддреА рд╣реИ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИред рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА:





рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓



рдЪрд▓реЛ рдПрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдХрд░ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рд╣рд┐рд╕реНрд╕рд╛ рд╣реИред рдмреЗрд╢рдХ, рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рд╕реЗ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ, рдПрдХ рдирдИ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдмрдирд╛рдПрдВ, рдЧрддрд┐рд╡рд┐рдзрд┐ (рдореИрдВ рдЧрддрд┐рд╡рд┐рдзрд┐ "рдореБрдЦреНрдп" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдирд╛рдо "SearchExample" рд╣реИ)ред рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕рднреА рд╕рд╛рдордЧреНрд░реА рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЗ рд╕рд╛рде рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд░реЗрд╕ / xml / рдЙрдкрдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдПрдХ searchable.xml рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред

<? xml version ="1.0" encoding ="utf-8" ? >

< searchable xmlns:android ="http://schemas.android.com/apk/res/android"

android:label ="@string/app_name"

android:hint ="@string/search_hint"

>

</ searchable >




* This source code was highlighted with Source Code Highlighter .






рдПрдХрдорд╛рддреНрд░ рдЖрд╡рд╢реНрдпрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдПрдВрдбреНрд░реЙрдЗрдб рд╣реИ: рд▓реЗрдмрд▓, рдФрд░ рдЗрд╕реЗ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ рдХрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдирд╛рдо рдХреЗ рд╕рдорд╛рди рд╣реИред рджреВрд╕рд░реА рд╡рд┐рд╢реЗрд╖рддрд╛, рдПрдВрдбреНрд░реЙрдЗрдб: рд╕рдВрдХреЗрдд, рдХрд╛ рдЙрдкрдпреЛрдЧ рдЦрд╛рд▓реА рд╕рдВрд╡рд╛рдж рдореЗрдВ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ "рд╡реАрдбрд┐рдпреЛ рдЦреЛрдЬ" рдпрд╛ "рд╕рдВрдкрд░реНрдХ рдЦреЛрдЬ" рдЖрджрд┐ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рд╡рд┐рд╢реЗрд╖рддрд╛ рдЗрдВрдЧрд┐рдд рдХрд░рддреА рд╣реИ рдХрд┐ рдХреМрди рд╕рд╛ рдбреЗрдЯрд╛ рдЦреЛрдЬрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдпрд╣ рдЬрд╛рдирдирд╛ рднреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдЦреЛрдЬ рдпреЛрдЧреНрдп рддрддреНрд╡ рдХрдИ рдЕрдиреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг рдпрд╣рд╛рдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ред



рдПрдХ рдЧрддрд┐рд╡рд┐рдзрд┐ рдмрдирд╛рдПрдБ



рдХрдо рд╕реЗ рдХрдо, рд╣рдо рд╕рднреА рд╕реЗ рдЧрддрд┐рд╡рд┐рдзрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЦреЛрдЬ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реВрдЪреА рд╣реИ рдФрд░ рдЦреЛрдЬ рд╕рдВрд╡рд╛рдж рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рддрдВрддреНрд░ рд╣реИред рд╣рдо рдХреЗрд╡рд▓ рдПрдХ рдкрд╛рда рдЗрдирдкреБрдЯ рдлрд╝реАрд▓реНрдб рдФрд░ рдПрдХ рдмрдЯрди рдЬреЛрдбрд╝рдХрд░ рдРрд╕рд╛ рдХрд░реЗрдВрдЧреЗ рддрд╛рдХрд┐ рд╣рдо рд╕реНрд╡рдпрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рднрд░ рд╕рдХреЗрдВред рдЖрдЧреЗ рджреЗрдЦрддреЗ рд╣реБрдП, рдореИрдВ рдХрд╣реВрдВрдЧрд╛ рдХрд┐ рд╣рдо рдбреЗрдЯрд╛ рдХреЛ SQLite рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░реЗрдВрдЧреЗред



рд╣рдо рдЧрддрд┐рд╡рд┐рдзрд┐ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рд╡рд░реНрдгрди рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдХрд░рддреЗ рд╣реИрдВ (рдлрд╝рд╛рдЗрд▓ рд░реЗрд╕ / рд▓реЗрдЖрдЙрдЯ / main.xml рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИ)ред

<? xml version ="1.0" encoding ="utf-8" ? >

< LinearLayout xmlns:android ="http://schemas.android.com/apk/res/android"

android:orientation ="vertical"

android:layout_width ="fill_parent"

android:layout_height ="fill_parent" >

< LinearLayout

android:orientation ="horizontal"

android:layout_width ="fill_parent"

android:layout_height ="wrap_content"

android:gravity ="top" >

< EditText

android:id ="@+id/text"

android:layout_width ="wrap_content"

android:layout_height ="wrap_content"

android:hint ="@string/text"

android:layout_weight ="100.0" />

< Button

android:id ="@+id/add"

android:layout_width ="wrap_content"

android:layout_height ="wrap_content"

android:text ="@string/add" />

</ LinearLayout >

< ListView

android:id ="@android:id/list"

android:layout_width ="fill_parent"

android:layout_height ="wrap_content" />

< TextView

android:layout_gravity ="left"

android:id ="@android:id/empty"

android:layout_width ="fill_parent"

android:layout_height ="fill_parent"

android:text ="@string/no_records" />

</ LinearLayout >




* This source code was highlighted with Source Code Highlighter .






рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:



рдЫрд╡рд┐



рд╣рдореЗрдВ рд╕реВрдЪреА рдЖрдЗрдЯрдо рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП рднреА рд▓реЗрдЖрдЙрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд╣рдо рдЗрд╕реЗ рд╕рд░рд▓рддрдо рддрд░реАрдХреЗ рд╕реЗ рд╡рд░реНрдгрди рдХрд░реЗрдВрдЧреЗ (рдлрд╝рд╛рдЗрд▓ res / рд▓реЗрдЖрдЙрдЯ / record.xml рдореЗрдВ рд╣реИ)

<? xml version ="1.0" encoding ="utf-8" ? >

< TextView

android:id ="@+id/text1"

xmlns:android ="http://schemas.android.com/apk/res/android"

android:layout_width ="wrap_content"

android:layout_height ="wrap_content"

/>




* This source code was highlighted with Source Code Highlighter .








рд╕рд╛рде рд╣реА, рдЙрд╕ рд╕рдВрд╕рд╛рдзрди рдлрд╝рд╛рдЗрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреА рди рднреВрд▓реЗрдВ рдЬрд╣рд╛рдБ рд╣рдорд╛рд░реА рд▓рд╛рдЗрдиреЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИрдВ (рд░рд┐рд╕ / рдорд╛рди / рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕.xml рдореЗрдВ рдлрд╝рд╛рдЗрд▓)

<? xml version ="1.0" encoding ="utf-8" ? >

< resources >

< string name ="app_name" > SearchExample </ string >

< string name ="add" > Add </ string >

< string name ="text" > Enter text </ string >

< string name ="no_records" > There are no records in the table </ string >

< string name ="search_hint" > Search the records </ string >

< string name ="search" > Search </ string >

</ resources >




* This source code was highlighted with Source Code Highlighter .






рдореИрдВ рдЖрдкрдХреЛ рдпрд╛рдж рджрд┐рд▓рд╛рддрд╛ рд╣реВрдВ рдХрд┐ рдЬрдм рдХреЛрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд┐рд╕реА рдЦреЛрдЬ рдХреЛ рдХрд░рддрд╛ рд╣реИ, рддреЛ SearchManager рдХреЗ рд▓рд┐рдП рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рд╡рд╣ рд╣рдорд╛рд░реА рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЗ рд▓рд┐рдП рдЦреЛрдЬ рдЕрдиреБрд░реЛрдз рдХреЗ рд╕рд╛рде рдПрдХ рдЗрд░рд╛рджреЗ рднреЗрдЬреЗред SearchManager рдХреЛ рдпрд╣ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдЙрд╕рдХреЗ рдЗрд░рд╛рджреЗ рдХреЛ рдХрд╣рд╛рдБ рднреЗрдЬрд╛ рдЬрд╛рдП, рдЖрдкрдХреЛ рдЗрд╕реЗ рдШреЛрд╖рдгрд╛ рдореЗрдВ рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, AndroidManifest.xml рдкрд░ рдЬрд╛рдПрдВ, рдФрд░ рдЗрд╕реЗ рдмрджрд▓ рджреЗрдВ рддрд╛рдХрд┐ рдЧрддрд┐рд╡рд┐рдзрд┐ рдЯрд╛рдЗрдк рдЦреЛрдЬ рдХреЗ рдЗрд░рд╛рджреЛрдВ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рд╕рдХреЗред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдо рдЕрдкрдиреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ searchable.xml рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВред рддреЛ, рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛:

<? xml version ="1.0" encoding ="utf-8" ? >

< manifest xmlns:android ="http://schemas.android.com/apk/res/android"

package ="com.example.search"

android:versionCode ="1"

android:versionName ="1.0" >

< application android:icon ="@drawable/icon" android:label ="@string/app_name" >

< activity android:name =".Main"

android:label ="@string/app_name" >

< intent-filter >

< action android:name ="android.intent.action.MAIN" />

< category android:name ="android.intent.category.LAUNCHER" />

</ intent-filter >

< intent-filter >

< action android:name ="android.intent.action.SEARCH" />

</ intent-filter >

< meta-data

android:name ="android.app.searchable"

android:resource ="@xml/searchable"

/>

</ activity >



</ application >

< uses-sdk android:minSdkVersion ="5" />



</ manifest >




* This source code was highlighted with Source Code Highlighter .






рдЕрдм, рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЬрд╛рдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдиреЗ рд╕рдм рдХреБрдЫ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд┐рдпрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред рдЖрдк рдПрдореБрд▓реЗрдЯрд░ рдкрд░ рд╕рдВрд╡рд╛рдж рдХреЛ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЦреЛрдЬ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗред рдареАрдХ рд╣реИ, рдпрд╛ рдпрджрд┐ рдЖрдк рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ "рдореЗрдиреВ" рдХреЛ рджрдмрд╛рдП рд░рдЦреЗрдВред рдпрд╣ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП:



рдЫрд╡рд┐



рдХреЛрдИ рдЦреЛрдЬ рдХрд░рддреЗ рд╕рдордп



рд╣рдордиреЗ рдЕрдкрдиреА рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреА рдШреЛрд╖рдгрд╛ рдХрд░рдиреЗ рдФрд░ AndroidManifest.xml рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рд╕реНрд╡рдпрдВ рдЦреЛрдЬ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдореЗрдВ рддреАрди рдЪрд░рдг рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:



рдЕрдиреБрд░реЛрдз рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ


рдЪреВрдВрдХрд┐ SearchManager рд╣рдорд╛рд░реА рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреА рдЦреЛрдЬ рдЦреЛрдЬ рднреЗрдЬрддрд╛ рд╣реИ, рдЧрддрд┐рд╡рд┐рдзрд┐ рд╢реБрд░реВ рд╣реЛрдиреЗ рдкрд░ рдЖрдкрдХреЛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рдПрдХ рдЗрд░рд╛рджреЗ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреА рд╣реЛрдЧреАред рдлрд┐рд░, рдпрджрд┐ рд╣рдореЗрдВ рд╡рд╛рдВрдЫрд┐рдд рдЖрд╢рдп рдорд┐рд▓рддрд╛ рд╣реИ, рддреЛ рд╣рдо рдЗрд╕рдореЗрдВ рд╕реЗ рдПрдХреНрд╕реНрдЯреНрд░рд╛ рдирд┐рдХрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЦреЛрдЬ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред



рдбреЗрдЯрд╛ рдЦреЛрдЬ


рдЪреВрдВрдХрд┐ рд╡рд┐рднрд┐рдиреНрди рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣рдг рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рдкреНрд░рдХрд╛рд░ рднрд┐рдиреНрди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЙрдирдХреЗ рд▓рд┐рдП рддрд░реАрдХреЗ рдЕрд▓рдЧ рд╣реИрдВред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, SQLite рдбреЗрдЯрд╛рдмреЗрд╕ рдЯреЗрдмрд▓ рдкрд░ LIKE рдХреНрд╡реЗрд░реА рдХреЗ рд╕рд╛рде рдХреНрд╡реЗрд░реА рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рд╣реИред рдмреЗрд╢рдХ, FTS3 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИ, рдпрд╣ рдмрд╣реБрдд рддреЗрдЬ рд╣реИ, рдЖрдк SQLite.org рдкрд░ FTS3 рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ, рдЖрдкрдХреЛ рд╣рдореЗрд╢рд╛ рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЦреЛрдЬ рдореЗрдВ рд▓рдВрдмрд╛ рд╕рдордп рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдк рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХрд╛ ProgressDialog рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рддрд╛рдХрд┐ рд╣рдорд╛рд░рд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд▓рдЯрдХрд╛ рди рд░рд╣реЗ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдпрд╣ рдЬрд╛рди рд╕рдХреЗ рдХрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред



рдЖрдЙрдЯрдкреБрдЯ рдкрд░рд┐рдгрд╛рдо


рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЖрдЙрдЯрдкреБрдЯ рдкрд░рд┐рдгрд╛рдо рдПрдХ рдпреВрдЖрдИ рд╕рдорд╕реНрдпрд╛ рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдЬрдм рд╕реЗ рд╣рдо рд▓рд┐рд╕реНрдЯ рд╡реНрдпреВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд╕рдорд╕реНрдпрд╛ рдмрд╕ рдПрдбреЗрдкреНрдЯрд░ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдХреЗ рд╣рд▓ рдХреА рдЬрд╛рддреА рд╣реИред



рд╕реНрд░реЛрдд рдХреЛрдб



рдЕрдВрдд рдореЗрдВ, рдореИрдВ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рджреЛ рд╡рд░реНрдЧреЛрдВ рдХрд╛ рдкреВрд░реНрдг рд╕реНрд░реЛрдд рдХреЛрдб рджреЗрддрд╛ рд╣реВрдВред рдкрд╣рд▓рд╛ рд╣реИ Main, ListActivity рдХрд╛ рд╡рдВрд╢рдЬ, рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдкреЙрдкреНрдпреБрд▓реЗрдЯ рдХрд░рдиреЗ рдФрд░ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рджреВрд╕рд░рд╛ рд╡рд░реНрдЧ RecordDbHelper рд╣реИ, рдпрд╣ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХреЗ рд▓рд┐рдП рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рддрд░реАрдХреЗ рд░рд┐рдХреЙрд░реНрдбреНрд╕ рдЬреЛрдбрд╝ рд░рд╣реЗ рд╣реИрдВ рдФрд░ LIKE рдХреНрд╡реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдореИрдЪ рдвреВрдВрдв рд░рд╣реЗ рд╣реИрдВред



Main.java рдлрд╝рд╛рдЗрд▓

package com.example.search;



import android.app.ListActivity;

import android.app.SearchManager;

import android.content.Intent;

import android.database.Cursor;

import android.os.Bundle;

import android.view.Menu;

import android.view.MenuInflater;

import android.view.MenuItem;

import android.view.View;

import android.widget.Button;

import android.widget.EditText;

import android.widget.SimpleCursorAdapter;



public class Main extends ListActivity {

private EditText text;

private Button add;

private RecordsDbHelper mDbHelper;



@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

//

mDbHelper = new RecordsDbHelper( this );

//

mDbHelper.open();

// Intent

Intent intent = getIntent();

// Intent

if (Intent.ACTION_SEARCH.equals(intent.getAction())) {

//

String query = intent.getStringExtra(SearchManager.QUERY);

//

showResults(query);

}



add = (Button) findViewById(R.id.add);

text = (EditText) findViewById(R.id.text);

add.setOnClickListener( new View.OnClickListener() {

public void onClick(View view) {

String data = text.getText().toString();

if (!data.equals( "" )) {

saveTask(data);

text.setText( "" );

}

}

});

}



private void saveTask( String data) {

mDbHelper.createRecord(data);

}



private void showResults( String query) {

//

Cursor cursor = mDbHelper.fetchRecordsByQuery(query);

startManagingCursor(cursor);

String [] from = new String [] { RecordsDbHelper.KEY_DATA };

int [] to = new int [] { R.id.text1 };



SimpleCursorAdapter records = new SimpleCursorAdapter( this ,

R.layout.record, cursor, from , to);

//

setListAdapter(records);

}

// ( res/menu/main_menu.xml)

public boolean onCreateOptionsMenu(Menu menu) {

MenuInflater inflater = getMenuInflater();

inflater.inflate(R.menu.main_menu, menu);

return true ;

}



public boolean onOptionsItemSelected(MenuItem item) {

switch (item.getItemId()) {

case R.id.search_record:

onSearchRequested();

return true ;

default :

return super.onOptionsItemSelected(item);

}

}

}




* This source code was highlighted with Source Code Highlighter .








рдлрд╝рд╛рдЗрд▓ рд░рд┐рдХреЙрд░реНрдбреНрд╕DHHperper.java

package com.example.search;



import android.content.ContentValues;

import android.content.Context;

import android.database.Cursor;

import android.database.SQLException;

import android.database.sqlite.SQLiteDatabase;

import android.database.sqlite.SQLiteOpenHelper;

import android.util.Log;



public class RecordsDbHelper {



public static final String KEY_DATA = "data" ;

public static final String KEY_ROWID = "_id" ;



private static final String TAG = "RecordsDbHelper" ;

private DatabaseHelper mDbHelper;

private SQLiteDatabase mDb;



private static final String DATABASE_CREATE = "CREATE TABLE records(_id INTEGER PRIMARY KEY AUTOINCREMENT, "

+ "data TEXT NOT NULL);" ;



private static final String DATABASE_NAME = "data" ;

private static final String DATABASE_TABLE = "records" ;

private static final int DATABASE_VERSION = 1;



private final Context mCtx;



private static class DatabaseHelper extends SQLiteOpenHelper {



DatabaseHelper(Context context) {

super(context, DATABASE_NAME, null , DATABASE_VERSION);

}



@Override

public void onCreate(SQLiteDatabase db) {



db.execSQL(DATABASE_CREATE);

}



@Override

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

Log.w(TAG, "Upgrading database from version " + oldVersion + " to "

+ newVersion + ", which will destroy all old data" );

db.execSQL( "DROP TABLE IF EXISTS tasks" );

onCreate(db);

}

}



public RecordsDbHelper(Context ctx) {

this .mCtx = ctx;

}



public RecordsDbHelper open() throws SQLException {

mDbHelper = new DatabaseHelper(mCtx);

mDb = mDbHelper.getWritableDatabase();

return this ;

}



public void close() {

mDbHelper.close();

}



//

public long createRecord( String data) {

ContentValues initialValues = new ContentValues();

initialValues.put(KEY_DATA, data);

return mDb.insert(DATABASE_TABLE, null , initialValues);

}



// LIKE

public Cursor fetchRecordsByQuery( String query) {

return mDb.query( true , DATABASE_TABLE, new String [] { KEY_ROWID,

KEY_DATA }, KEY_DATA + " LIKE" + "'%" + query + "%'" , null ,

null , null , null , null );

}

}




* This source code was highlighted with Source Code Highlighter .






рдирд┐рд╖реНрдХрд░реНрд╖


рд▓реЗрдЦ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП developer.android.com рдкреНрд░рд▓реЗрдЦрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

рдкреВрд░рд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ code.google.com рдкрд░ рд▓рд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред



All Articles