Advertisement
Pit_Anonim

Untitled

May 4th, 2019
214
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.46 KB | None | 0 0
  1. package com.example.a1.bottombar;
  2.  
  3. import android.app.ActivityOptions;
  4. import android.content.Intent;
  5. import android.os.Build;
  6. import android.os.Bundle;
  7. import android.support.annotation.NonNull;
  8. import android.support.design.widget.BottomNavigationView;
  9. import android.support.v7.app.AppCompatActivity;
  10. import android.support.v7.widget.CardView;
  11. import android.support.v7.widget.LinearLayoutManager;
  12. import android.support.v7.widget.RecyclerView;
  13. import android.view.MenuItem;
  14. import android.view.View;
  15. import android.widget.AdapterView;
  16. import android.widget.LinearLayout;
  17. import android.widget.RelativeLayout;
  18. import android.widget.ScrollView;
  19. import android.widget.Spinner;
  20. import android.widget.TextView;
  21.  
  22. import java.util.ArrayList;
  23.  
  24. public class MainActivity extends AppCompatActivity {
  25.  
  26. private Spinner spinner;
  27. private PrefManager prefManager;
  28. private byte currentMode;
  29. private String[] currentModes;
  30. private String currentModeName;
  31.  
  32.  
  33. private LinearLayout linearLayout;
  34. private RecyclerView recyclerViewTheory;
  35. private ItemAdapter itemAdapterTheory;
  36. private ArrayList<CardItem> listTheory;
  37.  
  38. private View viewMain;
  39. private RecyclerView recyclerViewMain;
  40. private ArrayList<CardItem> listMain;
  41. private ItemAdapter itemAdapterMain;
  42.  
  43. String[] orig, local;
  44.  
  45. private BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener
  46. = new BottomNavigationView.OnNavigationItemSelectedListener() {
  47.  
  48. @Override
  49. public boolean onNavigationItemSelected(@NonNull MenuItem item) {
  50. linearLayout.removeAllViews();
  51. switch (item.getItemId()) {
  52. case R.id.theory:
  53. linearLayout.addView(recyclerViewTheory);
  54. return true;
  55. case R.id.test:
  56. linearLayout.addView(recyclerViewMain);
  57. return true;
  58. }
  59. return false;
  60. }
  61. };
  62.  
  63. private Spinner.OnItemSelectedListener spinnerClickListener = new Spinner.OnItemSelectedListener(){
  64. @Override
  65. public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
  66. setMode((byte) position);
  67. prefManager.setPref(position);
  68. fillMain();
  69. }
  70.  
  71. @Override
  72. public void onNothingSelected(AdapterView<?> parent) {
  73.  
  74. }
  75. };
  76.  
  77. @Override
  78. protected void onCreate(Bundle savedInstanceState) {
  79. super.onCreate(savedInstanceState);
  80.  
  81. android.support.v7.app.ActionBar actionBar = getSupportActionBar();
  82. actionBar.setDisplayShowHomeEnabled(false);
  83. actionBar.setDisplayShowTitleEnabled(false);
  84. actionBar.setDisplayShowCustomEnabled(true);
  85. actionBar.setCustomView(R.layout.actionbar);
  86.  
  87. prefManager = new PrefManager(this);
  88. currentModes = getResources().getStringArray(R.array.scenario_name);
  89. setMode(prefManager.getCurrentMode());
  90.  
  91. spinner = actionBar.getCustomView().findViewById(R.id.spinner);
  92. spinner.setSelection(currentMode);
  93. spinner.setOnItemSelectedListener(spinnerClickListener);
  94.  
  95. setContentView(R.layout.activity_main);
  96.  
  97. BottomNavigationView navigation = (BottomNavigationView) findViewById(R.id.navigation);
  98. navigation.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener);
  99.  
  100. initTheory();
  101. initMain();
  102. fillMain();
  103. }
  104.  
  105. private void initTheory() {
  106. orig = getResources().getStringArray(R.array.menu_orig);
  107. local = getResources().getStringArray(R.array.menu_ru);
  108. linearLayout = findViewById(R.id.mainlayout);
  109.  
  110. recyclerViewTheory = new RecyclerView(this);
  111. recyclerViewTheory.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,
  112. LinearLayout.LayoutParams.MATCH_PARENT));
  113. recyclerViewTheory.setHasFixedSize(true);
  114. recyclerViewTheory.setLayoutManager(new LinearLayoutManager(this));
  115.  
  116. listTheory = new ArrayList<>();
  117.  
  118. for (int i = 0; i < orig.length; i++) {
  119. listTheory.add(new CardItem(local[i], orig[i]));
  120. }
  121. ItemAdapter.OnItemClickListener onItemClickListener = new ItemAdapter.OnItemClickListener() {
  122. @Override
  123. public void onItemClick(CardItem item, TextView v) {
  124.  
  125. Bundle bundle = null;
  126.  
  127. if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP_MR1) {
  128. if (v != null) {
  129. ActivityOptions options = ActivityOptions.makeSceneTransitionAnimation(MainActivity.this, v, MainActivity.this.getString(R.string.title_transition));
  130. bundle = options.toBundle();
  131. }
  132. }
  133.  
  134. Intent intent = new Intent(MainActivity.this, TheoryActivity.class);
  135. intent.putExtra("Title", item.title);
  136. intent.putExtra("orig", item.text);
  137. if (bundle == null) {
  138. MainActivity.this.startActivity(intent);
  139. } else {
  140. if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
  141. MainActivity.this.startActivity(intent, bundle);
  142. }
  143. }
  144. }
  145.  
  146. };
  147. itemAdapterTheory = new ItemAdapter(onItemClickListener, listTheory);
  148. recyclerViewTheory.setAdapter(itemAdapterTheory);
  149.  
  150. linearLayout.addView(recyclerViewTheory);
  151. }
  152.  
  153. private void initMain() {
  154. recyclerViewMain = new RecyclerView(this);
  155. recyclerViewMain.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,
  156. LinearLayout.LayoutParams.MATCH_PARENT));
  157. recyclerViewMain.setHasFixedSize(true);
  158. recyclerViewMain.setLayoutManager(new LinearLayoutManager(this));
  159.  
  160. listMain = new ArrayList<>();
  161. }
  162.  
  163. private void fillMain() {
  164. listMain.clear();
  165.  
  166. for (int i = 0; i < orig.length; i++) {
  167. listMain.add(new CardItem("Тестирование: " + local[i], currentModeName));
  168. }
  169.  
  170. itemAdapterMain = new ItemAdapter(null, listMain);
  171. recyclerViewMain.setAdapter(itemAdapterMain);
  172. }
  173.  
  174. private void setMode(byte currentMode){
  175. this.currentMode = currentMode;
  176. currentModeName = currentModes[currentMode];
  177. }
  178. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement