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

рдЗрд╕рдореЗрдВ рд╕реНрд╡рдпрдВ рд╕реНрдЯреЗрд╢рдиреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдФрд░ рд╕реНрдЯреЗрд╢рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЦреЛрдЬ рдмрд╛рд░ рд╢рд╛рдорд┐рд▓ рд╣реИред рдЦреЛрдЬ рдореЗрдВ рдПрдХ рд╕рдВрдХреЗрдд рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдЬрдм рд╕реВрдЪреА рдореЗрдВ рдЕрдХреНрд╖рд░реЛрдВ рдХрд╛ рдХреНрд░рдо рдЯрд╛рдЗрдк рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдХреЗрд╡рд▓ рд╡реЗ рд╕реНрдЯреЗрд╢рди рдЬрд┐рдирдХреЗ рдирд╛рдо рдЗрд╕ рдХреНрд░рдо рд╕реЗ рд╢реБрд░реВ рд╣реЛрддреЗ рд╣реИрдВ, рд░рд╣рддреЗ рд╣реИрдВред
рдмреЗрд▓реЛрд░реБрд╕реНрдХрд╛рдпрд╛ рд╕реНрдЯреЗрд╢рди рдкрд░ рдЯреИрдк рдХрд░реЗрдВ, рд╣рдореЗрдВ рдорд┐рд▓рддрд╛ рд╣реИ:

рдЕрдм рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рд╡рд╣рд╛рдВ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИред
рдпрд╣ рджреЗрдЦрдирд╛ рдЖрд╕рд╛рди рд╣реИ рдХрд┐ рдпрд╣рд╛рдВ рдПрдХ Google рдорд╛рдирдЪрд┐рддреНрд░ (MapView) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рддрджрдиреБрд╕рд╛рд░, рдпрд╣ рдпрд╛рдж рд░рдЦрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рддреЗ рд╕рдордп рдЖрдкрдХреЛ Google API рдХреЛ рд▓рдХреНрд╖реНрдп рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдЕрдм рдмрд┐рдВрджреБ рджреНрд╡рд╛рд░рд╛ рдмрд┐рдВрджреБ:
1. рдПрдВрдбреНрд░реЙрдЗрдб рдореИрдирдлреЗрд╕реНрдЯ
рдпрд╣ рдЖрдзрд╛рд░ рдлрд╝рд╛рдЗрд▓ рд╣реИ, рдЬреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреА рд╣реИ рдФрд░ рдЗрдВрдЧрд┐рдд рдХрд░рддреА рд╣реИ рдХрд┐ рдЗрд╕рдХреА рдХреНрдпрд╛ рдкрд╣реБрдВрдЪ рд╣реИред рддрджрдиреБрд╕рд╛рд░, рдЖрдкрдХреЛ рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЗрдВрдЯрд░рдиреЗрдЯ рддрдХ рдкрд╣реБрдВрдЪ рджрд░реНрдЬ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЗрдВрдЧрд┐рдд рдХрд░реЗрдВ рдХрд┐ com.google.android.maps рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рд╣рдорд╛рд░реА рдЧрддрд┐рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ: рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, SearchDialog, рдЬреЛ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкрд░ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ, рдФрд░ рдореИрдк, рдореИрдк рдХреЗ рд╕рд╛рде рдЧрддрд┐рд╡рд┐рдзрд┐ред
2. рдбреЗрдЯрд╛рдмреЗрд╕
рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдХрд╛рдо рдХреЗ рд▓рд┐рдП, рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рд╣реЗрд▓реНрдкрд░ рдмрдирд╛рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдЬреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рддрд░реАрдХреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ - рдЬреИрд╕реЗ рдХрд┐ рдкрд╣рд▓реЗ рдЕрдХреНрд╖рд░реЛрдВ рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рдирд╛ рдФрд░ рдЖрдИрдбреА рджреНрд╡рд╛рд░рд╛ рдЦреЛрдЬ рдХрд░рдирд╛ред
RecordDbHelper.java рдлрд╝рд╛рдЗрд▓, рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рд╣реА рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рд▓рд┐рдВрдХ рдкрд░ рджреЗрдЦреА рдЬрд╛ рд╕рдХрддреА рд╣реИред рдпрд╣рд╛рдВ рдХреЗрд╡рд▓ рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рд╣рдордиреЗ рдЖрдИрдбреА рдФрд░ рдЯреЗрдХреНрд╕реНрдЯ рдлрд┐рд▓реНрдЯрд░ рджреНрд╡рд╛рд░рд╛ рдЦреЛрдЬ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣рдо рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдХрд░реЗрдВрдЧреЗред
public Cursor getById(long id) { Cursor ccc = mDb.query(true, DATABASE_TABLE, new String[] { KEY_ROWID, KEY_NAME, KEY_X, KEY_Y, KEY_LINES }, KEY_ROWID + "=" + Long.toString(id), null, null, null, null, null); return ccc; } synchronized public Cursor fetchRecordsByQuery(String query) { Cursor ccc = mDb.query(true, DATABASE_TABLE, new String[] { KEY_ROWID, KEY_NAME, KEY_LINES }, KEY_NAME + " LIKE" + "'" + query + "%'", null, null, null, KEY_NAME, null); return ccc; }тАЛ
public Cursor getById(long id) { Cursor ccc = mDb.query(true, DATABASE_TABLE, new String[] { KEY_ROWID, KEY_NAME, KEY_X, KEY_Y, KEY_LINES }, KEY_ROWID + "=" + Long.toString(id), null, null, null, null, null); return ccc; } synchronized public Cursor fetchRecordsByQuery(String query) { Cursor ccc = mDb.query(true, DATABASE_TABLE, new String[] { KEY_ROWID, KEY_NAME, KEY_LINES }, KEY_NAME + " LIKE" + "'" + query + "%'", null, null, null, KEY_NAME, null); return ccc; }тАЛ
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд╕рдм рдХреБрдЫ рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣ рд╣реИ, рдХреЛрдИ рдЪрд╛рд▓ рдирд╣реАрдВред
3. рдПрдбреЙрдкреНрдЯрд░
рдпрд╣ рдПрдХ рд╡рд░реНрдЧ рд╣реИ рдЬреЛ рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдПрдХ рд╕реВрдЪреА рд╕рдВрдмрдВрдз рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдХреНрд╡реЗрд░реА рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╣рдореЗрдВ рдЯреЗрдмрд▓ рдХрд░реНрд╕рд░ рдорд┐рд▓рддрд╛ рд╣реИред рдПрдбреЗрдкреНрдЯрд░ Item.xml (рдиреАрдЪреЗ рджреЗрдЦреЗрдВ) рд╕реЗ рдХрд░реНрд╕рд░, рд╕реВрдЪреА, рддрд╛рд▓рд┐рдХрд╛ рдлрд╝реАрд▓реНрдб рдирд╛рдо рдФрд░ рддрддреНрд╡ рдЖрдИрдбреА рд▓реЗрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдПрдХ-рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рд╕рдВрдмрджреНрдз рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рд╕реВрдЪреА рджреГрд╢реНрдп рдкреЙрдкреНрдпреБрд▓реЗрдЯ рдХрд░рддрд╛ рд╣реИред рд╣рдо рдорд╛рдирдХ SimpleCursorAdapter рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рд▓реЗрдВрдЧреЗ, рдЬрд┐рд╕рдореЗрдВ рдпрд╣ рд╕рдм рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдореЗрдВ getView рдкрджреНрдзрддрд┐ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВред
Adapter.java
public class Adapter extends SimpleCursorAdapter{ public Adapter(Context context, int layout, Cursor c, String[] from, int[] to) { super(context, layout, c, from, to); } @Override public View getView(int position, View convertView, ViewGroup parent) { View view = super.getView(position, convertView, parent); long id=getItemId(position); view.setTag(id); return view; } }
public class Adapter extends SimpleCursorAdapter{ public Adapter(Context context, int layout, Cursor c, String[] from, int[] to) { super(context, layout, c, from, to); } @Override public View getView(int position, View convertView, ViewGroup parent) { View view = super.getView(position, convertView, parent); long id=getItemId(position); view.setTag(id); return view; } }
рдЧреЗрдЯрд╡реНрдпреВ рд╡рд┐рдзрд┐ рдореЗрдВ, рд╕реВрдЪреА рдЖрдЗрдЯрдо рдХрд╛ рддреИрдпрд╛рд░ рджреГрд╢реНрдп (рдпрд╛рдиреА, рдЯреИрдЧ рдореЗрдВ рд╕реНрдЯреЗрд╢рди рдирд╛рдо рдФрд░ рд░рдВрдЧреАрди рд╕рд░реНрдХрд▓) рдХреЗ рд╕рд╛рде рдПрдХ рд╕реВрдЪреА рд▓рд╛рдЗрди (рдЬрд┐рд╕рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рджреГрд╢реНрдп рд╣реИ) рдбреЗрдЯрд╛рдмреЗрд╕ рддрд╛рд▓рд┐рдХрд╛ рдХреА рдкрдВрдХреНрддрд┐ рдХреА рдЖрдИрдбреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдпрд╣ рддрддреНрд╡ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИред рд╕реВрдЪреА рдЖрдЗрдЯрдо рдкрд░ рдЯреИрдк рдХрд░рдиреЗ рдкрд░ рдпрд╣ рдЖрдИрдбреА рдмрд╛рдж рдореЗрдВ рдХрд╛рд░реНрдб рдХреЗ рд╕рд╛рде рдЧрддрд┐рд╡рд┐рдзрд┐ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рд╣реЛ рдЬрд╛рдПрдЧреАред
4. рд╕реВрдЪреА
рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рдЗрд╕рдХрд╛ рд▓реЗрдЖрдЙрдЯ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рдЕрд░реНрдерд╛рддреН, рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдЖрд╡рд╢реНрдпрдХ рддрддреНрд╡реЛрдВ рдХреЗ рджреГрд╢реНрдп рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд╛ рдлреНрд░реЗрдо:
search.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="wrap_content" > <EditText android:id="@+id/search_text" android:layout_width="fill_parent" android:layout_height="wrap_content" android:hint="@string/search_hint" /> <ListView android:id="@android:id/android:list" android:layout_width="fill_parent" android:layout_height="wrap_content" /> </LinearLayout>
<?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="wrap_content" > <EditText android:id="@+id/search_text" android:layout_width="fill_parent" android:layout_height="wrap_content" android:hint="@string/search_hint" /> <ListView android:id="@android:id/android:list" android:layout_width="fill_parent" android:layout_height="wrap_content" /> </LinearLayout>
рдПрдХ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╕реВрдЪреА рдЖрдЗрдЯрдо рдХрд╛ рд▓реЗрдЖрдЙрдЯ (рдЪрд┐рддреНрд░ рдореЗрдЯреНрд░реЛ рд▓рд╛рдЗрди рдХреЗ рд░рдВрдЧ рдФрд░ рд╕реНрдЯреЗрд╢рди рдХреЗ рдирд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рдЪрдХреНрд░ рд╣реИ):
item.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="horizontal" > <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/line_image" > </ImageView> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="TextView" android:id="@+id/text1" > </TextView> </LinearLayout>
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="horizontal" > <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/line_image" > </ImageView> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="TextView" android:id="@+id/text1" > </TextView> </LinearLayout>
рдЕрдм, рдЕрдВрдд рдореЗрдВ, рдЦреЛрдЬ рд╡рд░реНрдЧ, рдЬреЛ рдЦреЛрдЬ рдХреЗ рд╕рд╛рде рдЧрддрд┐рд╡рд┐рдзрд┐ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИред рдпрд╣ ListActivity рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рд╕реВрдЪрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢реЗрд╖ рдЧрддрд┐рд╡рд┐рдзрд┐ред рд╕реНрдЯреЗрд╢рдиреЛрдВ рдкрд░ рдбреЗрдЯрд╛ (рдирд╛рдо, рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдФрд░ рдореЗрдЯреНрд░реЛ рд▓рд╛рдЗрди рдХреА рд╕рдВрдЦреНрдпрд╛) рдЙрдкрд░реЛрдХреНрдд рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рд▓рд┐рдП рдЧрдП рд╣реИрдВред
public class Search extends ListActivity { // private EditText searchText; private RecordsDbHelper recordsDBHelper; private ListView list; private Adapter notes; // Binder private Binder binder; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.search); binder = new Binder(); list = getListView(); // , // intent id , //(. ), . list.setClickable(true); list.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> av, View v, int pos, long id) { Intent intent = new Intent(); intent.putExtra("ID", (Long) v.getTag()); intent.setClass(Search.this, Map.class); startActivity(intent); } }); searchText = (EditText) findViewById(R.id.search_text); // , // updateList(), searchText.addTextChangedListener(new TextWatcher() { public void afterTextChanged(Editable s) { } public void beforeTextChanged(CharSequence s, int start, int count, int after) { } public void onTextChanged(CharSequence s, int start, int before, int count) { updateList(searchText.getText().toString()); } }); // Database Helper', // . , // . list.post(new Runnable() { @Override public void run() { recordsDBHelper = new RecordsDbHelper(Search.this); recordsDBHelper.open(); updateList(searchText.getText().toString()); } }); } // Binder, SimpleCursorAdapter.ViewBinder. // . , // . private static class Binder implements Adapter.ViewBinder { public boolean setViewValue(View view, Cursor c, int i) { if (view.getId() == R.id.line_image) { Integer line = c.getInt(i); switch (line) { case 0: ((ImageView) view).setImageResource(R.drawable.line0); break; case 1: ((ImageView) view).setImageResource(R.drawable.line1); break; тАж тАж } return true; } return false; } } // // . private void updateList(String s) { if (recordsDBHelper.isReady()) { // Cursor c = recordsDBHelper.fetchRecordsByQuery(s); startManagingCursor(c); // , String[] from = new String[] { RecordsDbHelper.KEY_NAME, RecordsDbHelper.KEY_LINES }; // id (.. ImageView, // , TextView, ) int[] to = new int[] { R.id.text1, R.id.line_image }; // notes = new Adapter(Search.this, R.layout.item, c, from, to); notes.setViewBinder(binder); setListAdapter(notes); } } }
рдпрд╣рд╛рдВ рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рдмрд╛рдд, рдпрд╣ рдореБрдЭреЗ рд▓рдЧрддреА рд╣реИ, рдмрд┐рдВрджрд░ рд╣реИред рдпрд╣ рдЖрдкрдХреЛ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдХрд┐ рдбреЗрдЯрд╛рдмреЗрд╕ рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рд╕реВрдЪреА рдкрдВрдХреНрддрд┐ рддрддреНрд╡ рдореЗрдВ рдорд╛рди рдХреЛ рдХреИрд╕реЗ рдмрд╛рдБрдзреЗрдВ, рдЕрд░реНрдерд╛рддреН, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╡рд╛рдВрдЫрд┐рдд рд░рдВрдЧ рдХреЗ рдПрдХ рд╕рд░реНрдХрд▓ рдХреЗ рд╕рд╛рде рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╢рд╛рдЦрд╛ рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдХреИрд╕реЗ рдмрд╛рдВрдзреЗрдВред рдХрд░реНрд╕рд░ рд╡реНрдпреВрд╡рд░ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкреНрд░рддреНрдпреЗрдХ рджреГрд╢реНрдп рдХреЗ рд▓рд┐рдП setViewValue рд╡рд┐рдзрд┐ рдХреЛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рд░рд┐рдЯрд░реНрди рдкрд░рд┐рдгрд╛рдо рд╕рд╣реА рд╣реИ, рддреЛ рдбреЗрдЯрд╛ рдмрд╛рдзреНрдп рд╣реИ, рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИред рдпрджрд┐ рдЧрд▓рдд рд╣реИ, рддреЛ рд╕рд┐рд╕реНрдЯрдо рд╕рдордЭрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдЕрдиреБрдЪрд┐рдд рд╡рд┐рдзрд┐ рдХреЛ рдмреБрд▓рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдорд╛рдирдХ рдмрд╛рдЗрдВрдбрд░реЛрдВ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдПрдХ рдХреА рддрд▓рд╛рд╢ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдЙрджрд╛рд╣рд░рдг рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рдВрдЪрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдЪрд┐рддреНрд░ ImageView рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╕рд░реНрдХрд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдпрд╣ рдорд╛рдорд▓рд╛ рд╣реИ, рддреЛ рд╣рдо рд╕рдВрдмрдВрдзрд┐рдд рддрд╕реНрд╡реАрд░ рдХреЛ рд╡рд╣рд╛рдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЕрдиреНрдпрдерд╛ рд╣рдо рдЭреВрдареЗ рд▓реМрдЯрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдорд╛рдирдХ рдмрд╛рдЗрдВрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рддрд╕реНрд╡реАрд░ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рд╣рдо рдХреЗрд╡рд▓ рдЪрд┐рддреНрд░реЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддреЗ рд╣реИрдВ)ред
рд╕рдХреНрд░рд┐рдпрдг рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╕рдордп, рдСрдирдХреНрд░рд┐рдПрдЯ () рд╡рд┐рдзрд┐ рдХреЛ рдкрд╣рд▓реЗ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╕рднреА рдкреНрд░рджрд░реНрд╢рд┐рдд рддрддреНрд╡ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╣реЛрддреЗ рд╣реИрдВред рдпрд╣рд╛рдВ, рд╕реВрдЪреА рдЖрдЗрдЯрдо рдкрд░ рдПрдХ рдХреНрд▓рд┐рдХ рд╣реИрдВрдбрд▓рд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рд░рд┐рдХреЙрд░реНрдб рдХреЗ рдЖрдИрдбреА рдХреЗ рд╕рд╛рде рдПрдХ рдЯреИрдЧ рдЦреАрдВрдЪрддрд╛ рд╣реИ рдФрд░ рдЗрд╕ рдЯреИрдЧ рдХреЛ рдорд╛рдирдЪрд┐рддреНрд░ рдХреЗ рд╕рд╛рде рдЧрддрд┐рд╡рд┐рдзрд┐ рдореЗрдВ рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИ (рдареАрдХ рд╣реИ, рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ)ред рдПрдХ рдЯреЗрдХреНрд╕реНрдЯ рдЪреЗрдВрдЬ рд╣реИрдВрдбрд▓рд░ рднреА EditText (рдлрд╝рд┐рд▓реНрдЯрд░ рд╕реНрдЯреНрд░рд┐рдВрдЧ) рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЬрдм рдкрд╛рда рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЕрдкрдбреЗрдЯрд▓рд┐рд╕реНрдЯ () рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рд╕рд╣рд╛рдпрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдПрдХ рдЕрдиреБрд░реЛрдз рдбрд╛рд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд┐рдП рдЧрдП рдбреЗрдЯрд╛ рдХреЛ рдмрд╛рд╣рд░ рдирд┐рдХрд╛рд▓рддрд╛ рд╣реИ, рдФрд░ рд╕реВрдЪреА рдХреЗ рд▓рд┐рдП рдПрдХ рдПрдбрд╛рдкреНрдЯрд░ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
5. рдирдХреНрд╢рд╛
рдЕрдВрдд рдореЗрдВ, рд╣рдо рд╕реНрд╡рдпрдВ рдХрд╛рд░реНрдб рдХреА рдУрд░ рдореБрдбрд╝рддреЗ рд╣реИрдВред рд▓реЗрдЖрдЙрдЯ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ:
map.xml
<?xml version="1.0" encoding="utf-8"?> <com.google.android.maps.MapView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/mapview" android:layout_width="fill_parent" android:layout_height="fill_parent" android:clickable="true" android:apiKey=<b><u> GoogleMaps API</u></b> />
<?xml version="1.0" encoding="utf-8"?> <com.google.android.maps.MapView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/mapview" android:layout_width="fill_parent" android:layout_height="fill_parent" android:clickable="true" android:apiKey=<b><u> GoogleMaps API</u></b> />
GoogleMaps API рдХреА рдХреБрдВрдЬреА рдпрд╣рд╛рдВ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдореИрдВрдиреЗ рдЦрд╛рди рдирд╣реАрдВ рдЪрдордХрд╛рдпрд╛ :) рдЗрд╕реЗ рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ, рдЖрдк
рдпрд╣рд╛рдВ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред
рдЦреИрд░, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╛рд░реНрдб рдХреЗ рд╕рд╛рде рдЧрддрд┐рд╡рд┐рдзрд┐:
Map.java
public class Map extends MapActivity { public MapView mapView; public MapController mapController; private RecordsDbHelper mDbHelper; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.map); // mapView = (MapView) findViewById(R.id.mapview); // mapView.setBuiltInZoomControls(true); mapController = mapView.getController(); // mapView.post(new Runnable() { @Override public void run() { // mDbHelper = new RecordsDbHelper(Map.this); mDbHelper.open(); // . , id , Bundle extras = Map.this.getIntent().getExtras(); if (extras != null) { long str = extras.getLong("ID"); // id Cursor cursor = mDbHelper.getById(str); startManagingCursor(cursor); cursor.moveToFirst(); double x = cursor.getDouble(cursor.getColumnIndex(RecordsDbHelper.KEY_X)); double y = cursor.getDouble(cursor.getColumnIndex(RecordsDbHelper.KEY_Y)); // GeoPoint // GeoPoint point = new GeoPoint((int) (x * 1E6), (int) (y * 1E6)); // mapController.animateTo(point); mapController.setZoom(16); } } }); } }
рдпрд╣рд╛рдВ:
1. рдорд╛рдирдХ ZoomIn рдФрд░ ZoomOut рдмрдЯрди рдХрд╛рд░реНрдб рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рд╣реИрдВ (setBuiltInZoomControls () рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ)
2. рд╣рдорд╛рд░рд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдЦреБрд▓рддрд╛ рд╣реИред
3. рдЗрд╕ рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЗ рдХрд╛рд░рдг рдХреЗ рдЗрд░рд╛рджреЗ рд╕реЗ, рд░рд┐рдХреЙрд░реНрдб рдХреА рдЖрдИрдбреА рдЦреАрдВрдЪ рд▓реА рдЧрдИ рд╣реИ, рдЬрд┐рд╕реЗ рд╕реВрдЪреА рдЖрдЗрдЯрдо рдкрд░ рдХреНрд▓рд┐рдХ рд╣реИрдВрдбрд▓рд░ рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ (рдореИрдВрдиреЗ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдКрдкрд░ рд▓рд┐рдЦрд╛ рд╣реИ), рдФрд░ рдЗрд╕ рдЖрдИрдбреА рд╕реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рд╣рдо рд╡рд╛рдВрдЫрд┐рдд рд▓рд╛рдЗрди рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ, рдЬрд╣рд╛рдВ рд╕реЗ рд╣рдореЗрдВ рд╕реНрдЯреЗрд╢рди рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
4. рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдЕрдиреБрд░реЛрдз рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдкреНрд░рд╛рдкреНрдд getDouble рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирд┐рдХрд╛рд▓рд╛ рдЬрд╛рддрд╛ рд╣реИред
5. рдЗрд╕рдХреЗ рдмрд╛рдж, рдПрдХ рдЬрд┐рдпреЛрдкреНрд╡рд╛рдЗрдВрдЯ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╕рдордиреНрд╡рдп рд░реВрдкрд╛рдВрддрд░рдг рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ (рднрд┐рдиреНрдирд╛рддреНрдордХ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдФрд░ Google рдХреЛ рдкреВрд░реНрдгрд╛рдВрдХреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рд▓рд┐рдП рдЧрдП 10 ^ 6 рдФрд░ рд░рд╛рдЙрдВрдб рдСрдл рдХреЛ рдЧреБрдгрд╛ рдХрд░рдирд╛ рд╣реЛрдЧрд╛)ред
6. рдЪреЗрддрди () рдФрд░ рд╕реЗрдЯрдЬрд╝реВрдо () рд╡рд╛рдВрдЫрд┐рдд рд╕реНрдерд╛рди рдкрд░ рдирдХреНрд╢реЗ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВ рдФрд░ рдЬрд╝реВрдо рд╕реНрддрд░ рд╕реЗрдЯ рдХрд░реЗрдВред
рдлреВрд╣, рдмрд╕ рдЗрддрдирд╛ рд╣реАред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдХрд╛рдлреА рд╕рд░рд▓ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рддреБрдЪреНрдЫ рдЪреАрдЬреЗрдВ рдирд╣реАрдВ рд╣реИрдВ, рдЬреЛ рдПрдХ рд╢реБрд░реБрдЖрдд рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрддрдиреА рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрд╢рд╛ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдореИрдВрдиреЗ рдЬреЛ рдЕрдиреБрднрд╡ рд╕рд╛рдЭрд╛ рдХрд┐рдпрд╛ рд╣реИ рд╡рд╣ рдХрд┐рд╕реА рдХреЛ рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдХрд╛рд░рдг рдЙрддреНрд╕рд╛рд╣ рдирд╣реАрдВ рдЦреЛрдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛, рдФрд░ рдЕрдзрд┐рдХ рдЧреБрдгрд╡рддреНрддрд╛ рд╡рд╛рд▓реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╣реЛрдВрдЧреЗ рдЬреЛ рд╣рдорд╛рд░реЗ рдЬреАрд╡рди рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рддреЗ рд╣реИрдВ!
рдкреВрд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛
рдпрд╣рд╛рдВ рдкрд╛рдИ рдЬрд╛ рд╕рдХрддреА
рд╣реИ ред