рд╣реЗрд▓реЛ, рд╣реЗрдмреНрд░!
рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐
рдкрд┐рдЫрд▓реЗ рдХреБрдЫ рдорд╣реАрдиреЛрдВ рд╕реЗ рдореИрдВ Android рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдБред рд▓реЗрдХрд┐рди рдЕрдм рдпрд╣ рдЙрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╣реИ, рдореИрдВ рдЙрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓рд┐рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛, рд▓реЗрдХрд┐рди рд╣рд░ рдЪреАрдЬ рдХрд╛ рд╕рдордп рд╣реЛрддрд╛ рд╣реИ
рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рд░ рд╕рдордп, рдмрд╣реБрдд рд╕рд╛рд░реА рджрд┐рд▓рдЪрд╕реНрдк рдЪреАрдЬреЗрдВ рд╣реБрдИрдВ (рдФрд░ рд╣реЛрддреА рд╣реИрдВ)ред рдЖрдЬ рдореИрдВ рдЖрдкрдХреЛ рдПрдХ рдЫреЛрдЯреА рд╕реА рдХрд╣рд╛рдиреА рдмрддрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред
рдХрд╣рд╛рдиреА рдХреА рд╢реБрд░реБрдЖрдд
рдПрдХ рд╢рд╛рдо, рдирдП рд╕рд╛рд▓ рдХреА рдЫреБрдЯреНрдЯрд┐рдпреЛрдВ рд╕реЗ рдареАрдХ рдкрд╣рд▓реЗ, рдХрд╛рд░реНрдпрд╛рд▓рдп рдореЗрдВ рдХрд╛рдо рдХрд░рдирд╛ рдФрд░ рдЕрдкрдиреЗ рдкрд╕рдВрджреАрджрд╛ рд╕реАрдЧрд▓ рдХреЛ рдкреАрдирд╛, рдореИрдВрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рдЕрдЧрд▓рд╛ рднрд╛рдЧ рд▓рд┐рдЦрд╛ред
рдореБрдЭреЗ рдПрдХ рдирд┐рдпрдорд┐рдд рд╕рдВрд╡рд╛рдж рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА, рд╕реВрдЪреА рд╕реЗ рддрддреНрд╡реЛрдВ рдХреЗ рдХрдИ рдЪрдпрди рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЗ рд╕рд╛рде, рд╕рднреА рддрддреНрд╡реЛрдВ рдХреЛ рддреБрд░рдВрдд рдЪрд┐рд╣реНрдирд┐рдд / рдЕрдирдЪреЗрдХ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рде, рдЪрдпрдирд┐рдд рддрддреНрд╡реЛрдВ рдХреЛ рдмрдЪрд╛рдПрдВ рдФрд░ рдлрд┐рд░ рд╕рдВрд╡рд╛рдж рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрдиреЗ рдкрд░ рддреБрд░рдВрдд рдЙрдирдХрд╛ рдЪрдпрди рдХрд░реЗрдВред
рдЬрд▓реНрджреА рд╕реЗ рдирд╣реАрдВ рдХрд╣рд╛ред
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЛрдб рд╣реА:
protected ArrayList<String> items; protected ArrayList<String> selectedItems; protected void showMyDialog() { int count = items.size(); boolean[] checkedItems = new boolean[count]; for (int i = 0; i < count; i++) checkedItems[i] = selectedItems.contains(items.get(i)); AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setMultiChoiceItems(items.toArray(new String[items.size()]), checkedItems, new DialogInterface.OnMultiChoiceClickListener() { @Override public void onClick(DialogInterface dialog, int which, boolean isChecked) { ListView list = ((AlertDialog) dialog).getListView(); if (isChecked) { if (which == 0) { for (int i = 0; i < list.getCount(); ++i) list.setItemChecked(i, true); selectedItems.clear(); selectedItems.addAll(items); } else selectedItems.add(items.get(which)); } else { if (which == 0) { for (int i = 0; i < list.getCount(); ++i) list.setItemChecked(i, false); selectedItems.clear(); } else selectedItems.remove(items.get(which)); } } }); AlertDialog dialog = builder.create(); dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); dialog.show(); }
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИ рд╣реИ, рдЖрдк рдкрд░реАрдХреНрд╖рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЖрд░рд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдкрд╖реНрдЯ рд╡рд┐рд╡реЗрдХ рдХреЗ рд╕рд╛рде рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ (рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ, WOT =) рдЦреЗрд▓рддреЗ рд╣реИрдВ)ред
рдмрдЯрди рдЪрд┐рд╣реНрди рд╕рднреА рддрддреНрд╡реЛрдВ рдХреЗ рдХрд╛рдо рдХреЛ рдЕрдирдЪреЗрдХ рдХрд░реЗрдВред рд▓реЗрдХрд┐рди рдлрд┐рд░ рдореИрдВрдиреЗ рджреЗрдЦрд╛, рдпрджрд┐ рдЖрдк рдкрд╣рд▓реА рдмрд╛рд░ рдХреБрдЫ рддрддреНрд╡реЛрдВ рдХрд╛ рдЪрдпрди рд╕реНрд╡рдпрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╕рднреА рддрддреНрд╡реЛрдВ рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдЯрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдФрд░ рддреБрд░рдВрдд рд╕рднреА рдХреЛ рдЕрдирдЪреЗрдХ рдХрд░реЗрдВ, рдлрд┐рд░ рдореИрдВрдиреЗ рдЬрд┐рди рддрддреНрд╡реЛрдВ рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рд╣реИ рдЙрдирдХреА рдЬреЛрдбрд╝реА рдЬрд╛рдВрдЪреА рд╣реБрдИ рд╣реИред
рдереЛрдбрд╝рд╛ рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдХрд┐ рд╕реБрдмрд╣ рдЖрд░рд╛рдо рдХрд░рдиреЗ рдФрд░ рдЪреАрдЬреЛрдВ рдХреЛ рдЫрд╛рдВрдЯрдиреЗ рдХрд╛ рд╕рдордп рд╣реИред рдЬрд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВрдиреЗ рд╕реНрдЯреИрдХрдУрд╡рд░рдлреНрд▓реЛ рдкрд░ рдпрд╣ рд╕рд╡рд╛рд▓ рдЙрдард╛рдпрд╛ред
рд╕реБрдмрд╣ рдХрд╛рдо рдкрд░ рдЖрдиреЗ рдХреЗ рдмрд╛рдж, рдЕрдкрдиреЗ рд╡рд┐рд╖рдп рдХреЛ рджреЗрдЦрдиреЗ рдФрд░ рдХрд┐рд╕реА рднреА рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд╕рд▓рд╛рд╣ рдХреЛ рдирд╣реАрдВ рджреЗрдЦрдиреЗ рдХреЗ рдмрд╛рдж, рдЙрдиреНрд╣реЛрдВрдиреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЛ рдЖрдЧреЗ рдЬрд╛рд░реА рд░рдЦрд╛ред
рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ рдХреЗ рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рдмрд╛рдж, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЧрдпрд╛ рдХрд┐ рд╕рдорд╕реНрдпрд╛ рдХреЗрд╡рд▓ рдлрд╝рдВрдХреНрд╢рди рд╣реЛрдиреЗ рдкрд░ рдкреБрди: рдкреЗрд╢ рдХреА рдЬрд╛рддреА рд╣реИ
setMultiChoiceItems(CharSequence[] items, boolean[] checkedItems, OnMultiChoiceClickListener listener)
рдЪреЗрдХ рдЪреЗрдХ рдЗрдЯреНрд╕ рдПрдореНрд╕, рдЕрдЧрд░ рдирд▓ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдкрд╛рд╕ рд╣реБрдЖ, рддреЛ рд╕рдорд╕реНрдпрд╛ рдЙрддреНрдкрдиреНрди рдирд╣реАрдВ рд╣реБрдИред
рд╕реНрдЯреИрдХрдУрд╡рд░рдлрд╝реНрд▓реЛ рдкрд░ рдлрд┐рд░ рд╕реЗ рд╕рд╡рд╛рд▓ рдЙрдард╛рдпрд╛, рд▓реЗрдХрд┐рди рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдХрд┐рд╕реА рдиреЗ рдХрднреА рдХреБрдЫ рднреА рд╕рд▓рд╛рд╣ рдирд╣реАрдВ рджреАред
рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА 29 рджрд┐рд╕рдВрдмрд░ рдерд╛, рдФрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдЕрднреА рднреА рдХрдИ рдХрд╛рд░реНрдп рдереЗ, рдЗрд╕рд▓рд┐рдП рдПрдХ рдХреЛрдб рдХреЛ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ рдХреЛрдб рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдиреЗ рдХреЗ рдмрд╛рдж, рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИ рдереАред
Google рдХреЗ рдмрдЧ рдЯреНрд░реИрдХрд░ рдХреЛ рд╕рдорд╕реНрдпрд╛ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдирд╛ рдФрд░ рдЖрдЧреЗ рдХрд╛рдо рдХрд░рдирд╛ рдЬрд╛рд░реА
рд░рдЦрдирд╛ , рдореИрдВ рдЗрд╕ рдХрд╣рд╛рдиреА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреВрд▓ рдЧрдпрд╛ред
рд╣рдорд╛рд░реЗ рджрд┐рди
рдЖрдЬ, рдореЗрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рдХрд┐рд╕реА рдиреЗ рдореЗрд░реЗ рдмрдЧреНрд░реЗрдкреЛрд░реНрдЯ рдкрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреАред рджреЗрдЦрдиреЗ рдХреЗ рдмрд╛рдж рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЧрдпрд╛ рдХрд┐ рдХреБрдЫ рдФрд░ рд▓реЛрдЧреЛрдВ рдХреЛ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ред
рдереЛрдбрд╝реЗ рд╕реЗ рд╡реНрдпрд╡рд╕рд╛рдп рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рд╕рдорд╕реНрдпрд╛ рдкрд░ рдПрдХ рдФрд░ рдирдЬрд╝рд░ рдбрд╛рд▓рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред
рдореЗрд░реЗ рджрд┐рдорд╛рдЧ рдореЗрдВ рдПрдХ рд╡рд┐рдЪрд╛рд░ рдЖрдпрд╛, рд╣рд╛рд▓рд╛рдБрдХрд┐ рдРрд╕рд╛ рд▓рдЧ рд░рд╣рд╛ рдерд╛ рдХрд┐ рдпрд╣ рдкрд╣рд▓реЗ рд╣реА рдЖ рдЪреБрдХрд╛ рд╣реИ рдФрд░ рдореИрдВрдиреЗ рдЗрд╕рдХреА рдЬрд╛рдБрдЪ рдХреА, рдореИрдВрдиреЗ рдлрд┐рд░ рд╕реЗ рдЬрд╛рдБрдЪ рдХреАред
рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдерд╛ рдХрд┐ CheckItems рдХреЛ рд╡рд░реНрдЧ рдХрд╛ рдПрдХ рдХреНрд╖реЗрддреНрд░ рдмрдирд╛рдпрд╛ рдЬрд╛рдП, рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рд╢реНрд░реЛрддрд╛ рдореЗрдВ рднреА рдХрд╛рдо рдХрд┐рдпрд╛ рдЬрд╛рдПред
рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдСрдирдХреНрд▓рд┐рдХ рд╡рд┐рдзрд┐ рдиреЗ рдлрд╛рд░реНрдо рд▓рд┐рдпрд╛:
public void onClick(DialogInterface dialog, int which, boolean isChecked) { ListView list = ((AlertDialog) dialog).getListView(); if (isChecked) { if (which == 0) { for (int i = 0; i < list.getCount(); ++i) { list.setItemChecked(i, true); checkedItems[i]=true; } selectedItems.clear(); selectedItems.addAll(items); } else selectedItems.add(items.get(which)); } else { if (which == 0) { for (int i = 0; i < list.getCount(); ++i) { list.setItemChecked(i, false); checkedItems[i]=false; } selectedItems.clear(); } else selectedItems.remove(items.get(which)); } }
рдФрд░ рдлрд┐рд░ рднреА, рд╣рд╛рдБ, рдЗрд╕рд╕реЗ рдореВрд▓ рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИред
рдкрд░рд┐рдгрд╛рдоред
рд╣рдо рдирд┐рд╖реНрдХрд░реНрд╖ рдирд┐рдХрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрдЭреЗ рдпрд╣ рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИ:
рдпрджрд┐ рдЬрд╛рдБрдЪ рдХреА рдЧрдИ рд╣реИред рд╕рд░рдгреА рдореЗрдВ рддрддреНрд╡ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд (рдЧрд▓рдд) рдХреЗ рд░реВрдк рдореЗрдВ рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдЬрдм рдЬрд╛рдБрдЪ рдХреА рдЬрд╛рддреА рд╣реИ, рддреЛ рдЗрд╕реЗ рд╕реНрдХреНрд░реАрди рдкрд░ рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рд▓реЗрдХрд┐рди рд╕рд░рдгреА рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ) рдФрд░ рдЬрдм рдЕрдирд┐рдпрдВрддреНрд░рд┐рдд рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдирд┐рд╢рд╛рди рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЬрд╛рдБрдЪ рдХреА рдЧрдИ рд╣реИ, рддреЛ рддрддреНрд╡ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд (рд╕рддреНрдп) рдХреЗ рд░реВрдк рдореЗрдВ рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдЬрдм рдЕрдирд┐рдпрдВрддреНрд░рд┐рдд рд╣реЛрддрд╛ рд╣реИ, рддрдм рднреА рддрддреНрд╡ рд╕реНрдХреНрд░реАрди рдкрд░ рдЬрд╛рдВрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕рд░рдгреА рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рд░рд╣рддрд╛ рд╣реИред
рдЬреЛ рдХрд╣рд╛рдиреА рд╣реБрдИ, рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рджрд┐рд▓рдЪрд╕реНрдк рдереА, рдФрд░ рдЖрдкрдиреЗ рдЕрдкрдирд╛ рд╕рдордп рдмрд░реНрдмрд╛рдж рдирд╣реАрдВ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдореЗрд░реА рддрд░рд╣ред
рдЖрдкрдХреЗ рдзреНрдпрд╛рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдпрджрд┐ рдЖрдкрдХреЗ рдХреЛрдИ рдкреНрд░рд╢реНрди рд╣реИрдВ, рддреЛ рдореБрдЭреЗ рдЙрддреНрддрд░ рджреЗрдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреАред
рдЕрдЧрд▓реЗ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рдЦреБрдж рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдпрд╣ рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред