рдПрдВрдбреНрд░реЙрдпрдбред рдПрдХ рдкреНрд░рдЧрддрд┐ рдкрдЯреНрдЯреА рдХреЗ рд╕рд╛рде рдбреНрд░реЙрдк-рдбрд╛рдЙрди рд╕реВрдЪреА (рд╕реНрдкрд┐рдирд░)

рдЖрдкрдХреЛ рдмрдзрд╛рдИ, рдкрд╛рдардХ!

рдореИрдВ рдЖрдкрдХреЛ рдПрдХ рд▓рдШреБ рдирд┐рдмрдВрдз рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдбреНрд░реЙрдк-рдбрд╛рдЙрди рд╕реВрдЪреА рдореЗрдВ рдбреЗрдЯрд╛ рд▓реЛрдб рдХрд░рддреЗ рд╕рдордп рдореИрдВ рдкреНрд░рдЧрддрд┐ рдкрдЯреНрдЯреА ("рдЕрдирдВрдд рд╕рд░реНрдХрд▓") рдХреЛ рдХреИрд╕реЗ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рдЬрд┐рд╕реЗ рдПрдВрдбреНрд░реЙрдЗрдб рдореЗрдВ рд╕реНрдкрд┐рдирд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╡реЗрдм рд╕реЗрд╡рд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЫреЛрдЯреА рд╕реА рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддреЗ рд╕рдордп рдпрд╣ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЙрддреНрдкрдиреНрди рд╣реБрдИред рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЧрдгрдирд╛ рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдПрдХ рдХреЗрдВрджреНрд░реАрдХреГрдд рд╕рд░реНрд╡рд░ рдкрд░ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред .NET рд╡реЗрдм рд╕реЗрд╡рд╛ рд╡рд┐рднрд┐рдиреНрди рд▓рдВрдмрд╛рдИ (2 рд╕реЗ 50 рддрддреНрд╡реЛрдВ рддрдХ) рдХреЗ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрднрд╛рд╡рд┐рдд рдорд╛рдкрджрдВрдбреЛрдВ рдХреА рд╕реВрдЪреА рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИред рдЗрди рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рдбреНрд░реЙрдк-рдбрд╛рдЙрди рд╕реВрдЪреА рдХрд╛ рдЪрдпрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд╕реВрдЪреА рдЖрд░рдВрднреАрдХрд░рдг, рдЬреИрд╕рд╛ рдХрд┐ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╣реИ, рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд░реВрдк рд╕реЗ рд╣реЛрддрд╛ рд╣реИред рдФрд░ рдЬрдм рдбреЗрдЯрд╛ рд▓реЛрдб рд╣реЛ рд░рд╣рд╛ рд╣реИ, рдмрд┐рдирд╛ рдХрд┐рд╕реА рдкреНрд░рдЧрддрд┐ рдХреЗ рдЦрд╛рд▓реА рд╕реНрдерд┐рд░ рддрддреНрд╡реЛрдВ рдХреЛ рджреЗрдЦрдирд╛ рдЙрдмрд╛рдК, рдиреАрд░рд╕ рдФрд░ рдЖрдо рддреМрд░ рдкрд░ рд╣реИред


рд▓рдХреНрд╖реНрдп рд╣реА


рдорд╛рдирдХ рд╕реНрдкрд┐рдирд░ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

рдереЛрдбрд╝рд╛ рдкрд░рд┐рд╢реЛрдзрди рдХреЗ рдмрд╛рдж, рд╣рдореЗрдВ рдХреБрдЫ рдРрд╕рд╛ рдорд┐рд▓рддрд╛ рд╣реИ (CustomSpinner):


"рдирдордХ рдХреНрдпрд╛ рд╣реИ?" - рдЖрдк рдкреВрдЫрддреЗ рд╣реИрдВ рдФрд░ рдирдордХ рдПрдХ рдордзреНрдпрд╡рд░реНрддреА рдЕрд╡рд╕реНрдерд╛ (рдбреЗрдЯрд╛ рд▓реЛрдбрд┐рдВрдЧ) рдореЗрдВ рд╣реИ:


рдкреНрд░рдХрд╛рд╢ рд╡рд┐рд╖рдп рдореЗрдВ:



рдЗрд╕ рдкреНрд░рднрд╛рд╡ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ 2 рддрд░реАрдХреЗ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВ:
1 рд╕реНрдкрд┐рдирд░ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛; рдУрд╡рд░рдбреНрд░рд╛рдЗрд╡ () рдФрд░, рд╕рдВрднрд╡рддрдГ, рдХреБрдЫ рдЕрдиреНрдп рддрд░реАрдХреЗ; рд░рд╛рдЬреНрдп рд╣реИрдВрдбрд▓рд┐рдВрдЧ (рд▓реЛрдбрд┐рдВрдЧ / рд▓реЛрдб) рд▓рд╛рдЧреВ рдХрд░реЗрдВ
2 рд▓реЗрдЖрдЙрдЯ рд╕реЗ рдирд┐рд╣рд┐рдд; рдЙрд╕ рдкрд░ рд╕реНрдкрд┐рдирд░ рдФрд░ рдкреНрд░реЛрдЧреНрд░реЗрд╕рдмрд╛рд░ рд░рдЦреЗрдВ; рдЕрдкрдиреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдирд┐рдпрдВрддреНрд░рдг рдХрд╛ рдХрд╛рд░реНрдп рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░реЗрдВред

рдкрд╣рд▓рд╛ рддрд░реАрдХрд╛ рд╢рд╛рдпрдж рдЕрдзрд┐рдХ рд╕рд╣реА рд╣реИред рд▓реЗрдХрд┐рди рд╣рд░ рдмрд╛рд░ рдЬрдм рдореИрдВрдиреЗ рдЗрд╕ рдкрд░ рдХрджрдо рд░рдЦрд╛, рддреЛ рдореИрдВ Exception'y рдореЗрдВ рднрд╛рдЧ рдЧрдпрд╛ рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдХреНрд░реИрд╢ рдХрд░ рдЧрдпрд╛ред рд╣рд╛рд▓рд╛рдБрдХрд┐ рдореИрдВ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ Android рдЬрд╛рдирддрд╛ рд╣реВрдБ, рдореИрдВ рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ рдорд╛рдирддрд╛ рд╣реВрдБ рдХрд┐ рдореБрдЭреЗ рдЕрднреА рднреА рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрдпрд╛ рд╣реИ рдХрд┐ onDraw () рд╡рд┐рдзрд┐ рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реНрд░реЛрдд рдореЗрдВ рдЪрд╛рд░реЛрдВ рдУрд░ рдкреНрд░рд╣рд╛рд░ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдХрднреА-рдХрднреА рдпрд╣ рдЙрдкрдпреЛрдЧреА рд╣реЛрддрд╛ рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпрд╣ рдкрде рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдпрд╛, рдЗрд╕рд▓рд┐рдП рдХреЗрд╡рд▓ рд╢реБрд░реВ рдХрд┐рдП рдмрд┐рдирд╛ред

рджреВрд╕рд░рд╛ рддрд░реАрдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд░реНрдгрд┐рдд рд╣реИред рдореИрдВ рдЬрд▓реНрджреА рдФрд░ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рдЗрд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓рд╛ рдЧрдпрд╛ред рдФрд░ рд╡рд╣ рдРрд╕рд╛ рдерд╛ ...

XML рд▓реЗрдЖрдЙрдЯ


рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдореЗрдВ рдЕрдкрдиреЗ рдирдП рдирд┐рдпрдВрддреНрд░рдг (custom_spinner.xml) рдХреЛ "рд╕реНрдХреЗрдЪ" рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рднреА рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рд╣реИ - рдПрдХ рд░реВрдЯ рд▓реЗрдЖрдЙрдЯ рдФрд░ рджреЛ рдмреЗрдЯреА рддрддреНрд╡ (рд╕реНрдкрд┐рдирд░ рдФрд░ рдкреНрд░рдЧрддрд┐ рдмрд╛рд░)ред RelativeLayout рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫрд╛ рдлрд┐рдЯ рд╣реИред рдореБрдЭреЗ рдпрд╣ рдЗрд╕ рддрд░рд╣ рдорд┐рд▓рд╛:

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" > <Spinner android:id="@+id/spinner" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_centerInParent="true" /> <ProgressBar android:id="@+id/progress" style="@android:style/Widget.ProgressBar.Small" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" /> </RelativeLayout> 


рдХрд╕реНрдЯрдорд╕реНрдкрд┐рдирд░ рд╡рд░реНрдЧ


рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ CustomSpinner рд╡рд░реНрдЧ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред RelativeLayout рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рдПрдХ рд╡рд░реНрдЧ рдмрдирд╛рдПрдБ:

 public class CustomSpinner extends RelativeLayout { Context context; Spinner spinner; ProgressBar progress; public CustomSpinner(Context c, AttributeSet attrs) { super(c, attrs); this.context = c; //        custom_spinner.xml LayoutInflater.from(context).inflate(R.layout.custom_spinner, this, true); initViews(); } //        private void initViews() { spinner = (Spinner) findViewById(R.id.spinner); progress = (ProgressBar) findViewById(R.id.progress); } } 


рд░рд╛рдЬреНрдп рдкреНрд░рдмрдВрдзрди


рдореВрд▓ рд▓рдХреНрд╖реНрдп рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП (рдбреЗрдЯрд╛ рд▓реЛрдб рдХрд░рддреЗ рд╕рдордп рдПрдХ рдкреНрд░рдЧрддрд┐ рдкрдЯреНрдЯреА рджрд┐рдЦрд╛рддреЗ рд╣реБрдП), рд╣рдо рдХрд╕реНрдЯрдорд╕реНрдкрд┐рдирд░ рд╡рд░реНрдЧ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рддреЗ рд╣реИрдВ:

 public class CustomSpinner extends RelativeLayout { Context context; Spinner spinner; ProgressBar progress; ArrayAdapter<String> emptyAdapter; public CustomSpinner(Context c, AttributeSet attrs) { super(c, attrs); this.context = c; LayoutInflater.from(context).inflate(R.layout.custom_spinner, this, true); String[] strings = new String[] {}; List<String> items = new ArrayList<String>(Arrays.asList(strings)); emptyAdapter = new ArrayAdapter<String>(c, android.R.layout.simple_spinner_item, items); initViews(); } private void initViews() { spinner = (Spinner) findViewById(R.id.spinner); progress = (ProgressBar) findViewById(R.id.progress); } public void loading(boolean flag) { if (flag) spinner.setAdapter(emptyAdapter); progress.setVisibility(flag ? View.VISIBLE : View.GONE); } } 


рдпрджрд┐ рдирд┐рдпрдВрддреНрд░рдг рд▓реЛрдб рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдЗрд╕рдореЗрдВ рд╕рдВрднрд╛рд╡рд┐рдд рд╕реВрдЪреА рдорд╛рдиреЛрдВ рдХреЛ рдЫрд┐рдкрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - spinner.setAdapter(emptyAdapter); ред рдФрд░, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдкреНрд░рдЧрддрд┐ рдкрдЯреНрдЯреА рджрд┐рдЦрд╛рдПрдВред

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

  CustomSpinner spinner; ... @Override protected void onPreExecute() { spinner.loading(true); } ... @Override protected SpinnerAdapter doInBackground(Map<String, Object>... params) { // ,   -   SpinnerAdapter,     CustomSpinner return null; } ... @Override protected void onPostExecute(SpinnerAdapter result) { spinner.loading(false); if (result != null) spinner.setAdapter(result); } 


"рдмреЛрдиреНрд╕"


рдЦреИрд░, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рдФрд░ рдЙрдирдХреЗ рдмрд┐рдирд╛ рдХрд╣рд╛рдБ!

рдпрд╛рдж рд╣реИ рдХрд┐ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рд╣рдо рд╕реНрдкрд┐рдирд░ рдЪрд╛рд╣рддреЗ рдереЗред рдЗрд╕рд▓рд┐рдП, рдирд┐рдпрдВрддреНрд░рдг рд╡реНрдпрд╡рд╣рд╛рд░ рдЙрдЪрд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЪрдпрдирд┐рдд рдХреНрд░рд┐рдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде, рдЖрдкрдХреЛ рдХрдИ рдЧреИрдЧреНрд╕ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

 public class CustomSpinner extends RelativeLayout { ... //      public void setOnItemSelectedListener(OnItemSelectedListener l) { spinner.setTag(getId()); spinner.setOnItemSelectedListener(l); } //    public void setAdapter(SpinnerAdapter adapter) { spinner.setAdapter(adapter); } //       public int getSelectedItemPosition() { return this.spinner.getSelectedItemPosition(); } //    public SpinnerAdapter getAdapter() { return this.spinner.getAdapter(); } } 


рддрд░реАрдХреЗ getAdapter(), setAdapter(), getSelectedItemPosition() рдмрд╕ "рдЖрдЧреЗ" рдХрд╛рд░реНрд░рд╡рд╛рдИ рдЖрдВрддрд░рд┐рдХ рд╕реНрдкрд┐рдирд░ рдХреЗ рд▓рд┐рдПред
рдзреНрдпрд╛рди рдХреЛ setOnItemSelectedListener(OnItemSelectedListener l) рд╡рд┐рдзрд┐ рд╕реЗ рднреБрдЧрддрд╛рди рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдореИрдВ рд╕рднреА рдирд┐рдпрдВрддреНрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╢реНрд░реЛрддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ (рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЕрдзрд┐рдХ рд╕рд╣реА рд╣реИ) рдЬрд┐рд╕рдореЗрдВ рдореИрдВ switch(*some_unique_value*)...case(R.id.model) рдХрд░рддрд╛ switch(*some_unique_value*)...case(R.id.model) рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ switch(*some_unique_value*)...case(R.id.model) рд╕рдХреЗ рдХрд┐ рдЖрдЧреЗ рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИред рдЪреВрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рдЕрдВрджрд░ рдбреНрд░реЙрдк-рдбрд╛рдЙрди рд╕реВрдЪреА рдореЗрдВ рдПрдХ рдЕрджреНрд╡рд┐рддреАрдп рд╡реИрд╢реНрд╡рд┐рдХ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдирд╣реАрдВ рд╣реИ (рдпрд╣ рд╕рднреА R.id.spinner рдХреЗ рд▓рд┐рдП рд╣реИ), рд╣рдо рдбреНрд░реЙрдк-рдбрд╛рдЙрди рд╕реВрдЪреА рдЯреИрдЧ рдореЗрдВ рдЕрднрд┐рднрд╛рд╡рдХ рдирд┐рдпрдВрддреНрд░рдг spinner.setTag(getId()); ) spinner.setTag(getId()); рдХреА рдкрд╣рдЪрд╛рди рд▓рд┐рдЦрддреЗ рд╣реИрдВред рдЕрдм, рдЬрдм рд╣рдо рдбреНрд░реЙрдк-рдбрд╛рдЙрди рд╕реВрдЪреА рдореЗрдВ рдореВрд▓реНрдп рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИрдВрдбрд▓рд░ рдХреЛ рдмреБрд▓рд╛рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдкрд╣рдЪрд╛рди рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреМрди рд╕реА рд╕реВрдЪреА рдмрджрд▓ рдЧрдИ рд╣реИ:

рдбреНрд░реЙрдк рдбрд╛рдЙрди рд╣реИрдВрдбрд▓рд░:

 class SpinnerItemSelectedListener implements OnItemSelectedListener { @Override public void onItemSelected(AdapterView<?> paramAdapterView, View paramView, int paramInt, long paramLong) { int id = ((SimpleParameter) paramAdapterView.getAdapter().getItem( paramInt)).getId(); switch ((Integer) paramAdapterView.getTag()) { case R.id.city: initCityDependant(id); break; case ...: otherMethod(); break; default: break; } } @Override public void onNothingSelected(AdapterView<?> paramAdapterView) { } } 


рдпрджрд┐ рд╣рдорд╛рд░рд╛ рдХрд╕реНрдЯрдо рдирд┐рдпрдВрддреНрд░рдг рд╕реАрдзреЗ рд╕реНрдкрд┐рдирд░ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рдерд╛, рддреЛ рдпреЗ рдмреИрд╕рд╛рдЦреА рд╢рд╛рдпрдж рдирд╣реАрдВ рдереАред рд▓реЗрдХрд┐рди рдЕрдлрд╕реЛрд╕ред

рдореЛрд▓реНрдб рдкрд░ рдХрд╕реНрдЯрдорд╕реНрдкрд┐рдирд░


рдпрд╣ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЗрдВрдЯрд░рдлрд╝реЗрд╕ (рд▓реЗрдЖрдЙрдЯ) рдореЗрдВ рд╣рдорд╛рд░реЗ рдирдП рддрддреНрд╡ рдХреЛ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд╣реБрдЖ рд╣реИ:

 <org.solo12zw74.app.CustomSpinner android:id="@+id/model" android:layout_width="fill_parent" android:layout_height="wrap_content" /> 


рдореЗрд░реЗ рдлреЙрд░реНрдо рдкрд░ 25 рдРрд╕реЗ рдирд┐рдпрдВрддреНрд░рдг рд╣реИрдВред рдПрдХ рдмрд╛рд░ рдЬрдм рдореИрдВрдиреЗ рдкрдврд╝рд╛ рдХрд┐ рдЖрдк рд▓реЗрдЖрдЙрдЯ рд╣реЗрдбрд░ рдореЗрдВ рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдХреЗ рдирд╛рдо рд╕реНрдерд╛рди рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рддрдм рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкреВрд░реНрдг рд╡рд░реНрдЧ рдирд╛рдо org.solo12zw74.app.CustomSpinner рд▓рд┐рдЦрдиреЗ рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧреАред рд▓реЗрдХрд┐рди рдЕрдм рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред

рдЕрдВрддрднрд╛рд╖рдг


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

Source: https://habr.com/ru/post/In151285/


All Articles