рджреГрд╢реНрдп рдмрджрд▓реЗрдВред рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рд░реВрдк рдмрджрд▓реЗрдВ

рдмрд╣реБрдд рдкрд╣рд▓реЗ рдирд╣реАрдВ, рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдШреВрдорддреЗ рд╣реБрдП, рдореИрдВ рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдкреИрдЯрд░реНрди рдХреЗ рд╕рд╛рде рдПрдХ рдЕрджреНрднреБрдд рд╕рд╛рдЗрдЯ рдкрд░ рдЖрдпрд╛ рдерд╛ред рдПрдХ рдорд╣рд╛рди рд╕рд╛рдЗрдЯ - рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдЕрдиреБрдХреВрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЙрдкрдпреЛрдЧреА рд╕реБрдЭрд╛рд╡, рд▓реЗрдХрд┐рди рдПрдХ рдмрдбрд╝рд╛ "рдмрдЯ" рд╣реИ рдЬреЛ рдореБрдЭреЗ рдкрд╕рдВрдж рдирд╣реАрдВ рдЖрдпрд╛ред рдкреВрд░реА рд╕рд╛рдЗрдЯ рдкрд░ рдЪрдврд╝рддреЗ рд╣реБрдП, рдореБрдЭреЗ рдХрдо рд╕реЗ рдХрдо рдПрдХ рдкреИрдЯрд░реНрди рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд▓рд┐рдВрдХ рдирд╣реАрдВ рдорд┐рд▓рд╛ред рдФрд░ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕ рдкреИрдЯрд░реНрди рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдд, рдХрд┐рд╕реА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╕реЛрдЪрдирд╛ рдФрд░ рд▓рд┐рдЦрдирд╛ рдмреЗрд╣рдж рдореБрд╢реНрдХрд┐рд▓ рд╣реИ, рд▓реЗрдХрд┐рди рдмрд╣реБрдд рддреЗрдЬ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЖрд▓рд╕реА рдХреЛ рджреЗрдЦрдиреЗ рдФрд░ рдореМрдЬреВрджрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ рддрд░рд╣ рд╕реЗ рд╕реБрдЦрдж рд╣реИред рдФрд░ рд╢реБрд░реБрдЖрддреА рдПрдВрдбреНрд░реЙрдЗрдб рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП, рдЬреАрд╡рди рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдЖрдк рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдпрд╣ рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИред рддреЛ рдореИрдВрдиреЗ рддрдп рдХрд░ рд▓рд┐рдпрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЗрди рдкреИрдЯрд░реНрди рдкрд░ рд▓рд┐рдЦрдиреЗ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред рдФрд░ рдЪрд▓рд┐рдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рдкрд░рдо рд╕рддреНрдп рдХрд╛ рджрд╛рд╡рд╛ рдирд╣реАрдВ, рдЗрд╕ рдПрдХ рд╕реЗ, рдЕрд░реНрдерд╛рддреН рдкрд╣рд▓реЗ рд╕реЗ!



рддреЛ, рд╣рдо рдпрд╣ LayoutInflater рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдПрд╣рд╕рд╛рд╕ред рдкреИрдЯрд░реНрди рдкреГрд╖реНрда рдкрд░ рдЙрджрд╛рд╣рд░рдг рдкреГрд╖реНрда рд╕реВрдЪреА рджреГрд╢реНрдп рдФрд░ рдЧреНрд░рд┐рдб рджреГрд╢реНрдп рдХреЗ рд╕рд╛рде рдПрдХ рдлрд╝рд╛рдЗрд▓ рдкреНрд░рдмрдВрдзрдХ рджрд┐рдЦрд╛рддрд╛ рд╣реИред рдпрд╣рд╛рдВ рд╣рдо рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рддрджрдиреБрд╕рд╛рд░ рд╕реВрдЪреАред xml:

<ListView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/listLayout" android:layout_width="fill_parent" android:layout_height="fill_parent" > </ListView> 

рдФрд░ рдЧреНрд░рд┐рдбред xml (рдЬрд┐рд╕рдореЗрдВ рд╣рдо рдЧреБрд░реБрддреНрд╡рд╛рдХрд░реНрд╖рдг рдХреЗ рд▓рд┐рдП 4 рдХреЙрд▓рдо рдмрдирд╛рдПрдВрдЧреЗ рдФрд░ рдХреЗрдВрджреНрд░ рдореЗрдВ рдЧреБрд░реБрддреНрд╡рд╛рдХрд░реНрд╖рдг рд╕реЗрдЯ рдХрд░реЗрдВрдЧреЗ):

 <GridView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/gridLayout" android:layout_width="fill_parent" android:layout_height="fill_parent" android:numColumns="4" android:gravity="center" > </GridView> 


рдЕрд░реЗ рд╣рд╛рдБ, рд╣рдо рдЕрдкрдиреЗ рдЬреАрд╡рди рдХреЛ рдЕрдзрд┐рдХрддрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд╡реНрдпреВ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ рд╕реЗ рдСрдмреНрдЬреЗрдХреНрдЯ рднреА рдмрдирд╛рддреЗ рд╣реИрдВред рддреЛ list_item.xml:

  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/linearLayout1" android:layout_width="fill_parent" android:layout_height="fill_parent" > <ImageView android:id="@+id/imageView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/ic_launcher" /> <TextView android:id="@+id/textItem" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Medium Text" android:textAppearance="?android:attr/textAppearanceMedium" /> </LinearLayout> 


рдФрд░ grid_item.xml:

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" > <Button android:id="@+id/gridButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button" android:drawableTop="@drawable/ic_launcher" /> </LinearLayout> ic_launcher" /> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" > <Button android:id="@+id/gridButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button" android:drawableTop="@drawable/ic_launcher" /> </LinearLayout> 


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

 private void SavePreferences(String key, String value) { SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE); SharedPreferences.Editor editor = sharedPreferences.edit(); editor.putString(key, value); editor.commit(); } private String LoadPreferences(String key) { SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE); String loadedString = sharedPreferences.getString(key, "list"); return loadedString; } рд╕реВрдЪреА"); private void SavePreferences(String key, String value) { SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE); SharedPreferences.Editor editor = sharedPreferences.edit(); editor.putString(key, value); editor.commit(); } private String LoadPreferences(String key) { SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE); String loadedString = sharedPreferences.getString(key, "list"); return loadedString; } 


рдЕрдм рдЖрдкрдХреЛ рдПрдХ рд╡реНрдпреВрдЧреНрд░реБрдк рдмрдирд╛рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдЬреЛ рд╣рдорд╛рд░реЗ рд╡реНрдпреВ рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░реЗрдЧрд╛ (рд╡реНрдпреВ рдХреЛ рдЦреБрдж рдмрдирд╛рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛; рдЖрдк "рд╡реНрдпреВрдЬ" рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕реЗ рдкрд╕рдВрдж рдирд╣реАрдВ рдХрд░рддрд╛ рдЬрдм рдпреЗ рд╢рдмреНрдж рдЯреНрд░рд╛рдВрд╕рд▓реЗрдЯ рд╣реЛ рдЬрд╛рдПрдВрдЧреЗ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЕрдВрдЧреНрд░реЗрдЬреА рдореЗрдВ рдмреЗрд╣рддрд░ рд▓рд┐рдЦреВрдВрдЧрд╛)ред рд╣рдо LayoutInflater рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдСрдмреНрдЬреЗрдХреНрдЯ рдирд╣реАрдВ рдмрдирд╛рдПрдВрдЧреЗ, рдХреНрдпреЛрдВрдХрд┐ Android рдкреНрд░рд▓реЗрдЦрди рд╣рдореЗрдВ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрд╢рдВрд╕рд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ (рдЗрд╕ рддрдереНрдп рдХреЛ рд╕рд╣реА рдард╣рд░рд╛рддреЗ рд╣реБрдП рдХрд┐ рд╣рдорд╛рд░реА рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд╣реБрдЖ рд╣реИ)ред рддрджрдиреБрд╕рд╛рд░, рд╣рдо рдЗрд╕ рддрд░рд╣ рдХреА рдмрд┐рд▓реНрд▓реА рдХреЛ рдСрдирдХреНрд░реАрдЯ рд╡рд┐рдзрд┐ рдореЗрдВ рдбрд╛рд▓реЗрдВрдЧреЗ:

  setContentView(R.layout.main); content = new String[] {"Item 1", "Item 2", "Item 3", "Item 4", "Item 5", "Item 6", "Item 7", "Item 8", "Item 9", "Item 10"}; viewGroup = (ViewGroup) findViewById(R.id.mainLayout); list = getLayoutInflater().inflate(R.layout.list, null); grid = getLayoutInflater().inflate(R.layout.grid, null); if(LoadPreferences("VIEW").equalsIgnoreCase("list")) setList(); else setGrid(); 


рдЕрдм рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВ setList () рдФрд░ setGrid () рдХреАред рд╣рдо рдмрд╛рдж рдореЗрдВ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рд╣рдорд╛рд░реЗ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдЕрджреНрдпрддрди рдХрд░реЗрдЧрд╛ рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВ рдЗрд╕ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ рддрд░реАрдХреЛрдВ рдмрдирд╛рдпрд╛:

 private void setList() { viewGroup.removeAllViews(); viewGroup.addView(list); ListView listView = (ListView) list.findViewById(R.id.listLayout); listView.setAdapter(new ArrayAdapter<String>(this, R.layout.list_item, R.id.textItem, content)); } private void setGrid() { viewGroup.removeAllViews(); viewGroup.addView(grid); GridView gridview = (GridView) findViewById(R.id.gridLayout); gridview.setAdapter(new ArrayAdapter<String>(this, R.layout.grid_item, R.id.gridButton, content)); } 


рд╡рд╛рд╣! рдЖрдк рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЪрд▓рд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ! рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ! рд▓реЗрдХрд┐рди рдпрд╣ рдЕрдЪреНрдЫрд╛ рдЕрдм, рд╕реНрд╡рд┐рдЪрд░ рдЬреЛрдбрд╝рдиреЗ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд▓рд┐рдЦрдиреЗ рд▓реЗрдЦ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рд╣рдо рдЗрд╕реЗ рдореЗрдиреВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕реЗ рд╣рд╛рд░реНрдбрдХреА рджрдмрд╛рдП рдЬрд╛рдиреЗ рдкрд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдореЗрдиреВред Xml рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ:

 <menu xmlns:android="http://schemas.android.com/apk/res/android" > <item android:id="@+id/item" android:title="Change view"></item> </menu> 


рдФрд░ рдЗрд╕рд▓рд┐рдП рд╣рдорд╛рд░реА рдЧрддрд┐рд╡рд┐рдзрд┐ рдореЗрдВ рдЗрд╕рдХреЗ рдХрд╛рдо рдХреЗ рддрд░реАрдХреЗ рд╣реИрдВ (рджреЛрдиреЛрдВ рд╣реА рддрд░реАрдХреЗ рд╕рд╣реА рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдЕрдкрдиреЗ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ)

  @Override public boolean onCreateOptionsMenu(Menu menu) { // TODO Auto-generated method stub MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.menu, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // TODO Auto-generated method stub if(LoadPreferences("VIEW").equalsIgnoreCase("list")) { setGrid(); SavePreferences("VIEW", "grid"); } else { setList(); SavePreferences("VIEW", "list"); } return true; } 


рдЦреИрд░, рд▓рдЧрднрдЧ рд╕рдм рдХреБрдЫред рдмрд╕ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореИрдВ рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рдкреЛрд╕реНрдЯ рдХрд░реВрдВрдЧрд╛ред рдФрд░ рдПрдВрдбреНрд░реЙрдЗрдб рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рд╢реБрд░реБрдЖрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╢реБрднрдХрд╛рдордирд╛рдПрдВред

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


All Articles