Advertisement
Guest User

Untitled

a guest
Jun 16th, 2019
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.09 KB | None | 0 0
  1. public class RecyclerViewAdapter extends RecyclerView.Adapter<ViewHolder> {
  2.  
  3. private List<Model> model;
  4. private Context context;
  5.  
  6. public RecyclerViewAdapter(Context context, List<Model> model) {
  7. this.context = context;
  8. this.model = new ArrayList<>(model);
  9. }
  10.  
  11. @Override
  12. public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
  13. View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.custom_layout, parent, false);
  14. return new ViewHolder(context, view, model);
  15. }
  16.  
  17. @Override
  18. public void onBindViewHolder(ViewHolder holder, int position) {
  19. final Model model = model.get(position);
  20. holder.bind(model);
  21. }
  22.  
  23. @Override
  24. public int getItemCount() {
  25. return model.size();
  26. } }
  27.  
  28. public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
  29.  
  30. private List<Model> model = new ArrayList<>();
  31. private Context context;
  32.  
  33. private TextView textViewGroup;
  34. private TextView textViewName;
  35.  
  36. public ViewHolder(Context context, View itemView, List<Model> model) {
  37. super(itemView);
  38.  
  39. this.model = model;
  40. this.context = context;
  41.  
  42. itemView.setOnClickListener(this);
  43.  
  44. textViewGroup = (TextView) itemView.findViewById(R.id.textViewGroup);
  45. textViewName = (TextView) itemView.findViewById(R.id.textViewName);
  46.  
  47. }
  48.  
  49. public void bind(Model model) {
  50. textViewGroup.setText(model.getGroup());
  51. textViewName.setText(model.getName());
  52. }
  53. }
  54.  
  55. @Override
  56. public void onClick(View view) {
  57. Model model = this.model.get(getAdapterPosition());
  58. Intent intent = new Intent(this.context, ShowGroup.class);
  59. intent.putExtra("DATA", model);
  60. intent.putExtra("POSITION", getAdapterPosition());
  61. ((Activity) this.context).startActivityForResult(intent, 7);
  62.  
  63. Log.i(">>", "_IDHOLDER: " + model.getId());
  64. Log.i(">>", "_POSITION: " + getAdapterPosition());
  65. Log.i(">>", ".");
  66. } }
  67.  
  68. public class Model implements Serializable {
  69.  
  70. public static final String TABLE = "GROUP_NAME";
  71. public static final String ID = "_ID";
  72. public static final String GROUP = "GROUP";
  73. public static final String NAME = "NAME";
  74.  
  75. private long id;
  76. private String group;
  77. private String name;
  78.  
  79. public Model() {
  80. setId(0);
  81. }
  82.  
  83. public long getId() {
  84. return id;
  85. }
  86.  
  87. public void setId(long id) {
  88. this.id = id;
  89. }
  90.  
  91. public String getGroup() {
  92. return group;
  93. }
  94.  
  95. public void setGroup(String group) {
  96. this.group = group;
  97. }
  98.  
  99. public String getName() {
  100. return name;
  101. }
  102.  
  103. public void setName(String name) {
  104. this.name = name;
  105. } }
  106.  
  107. public class Repository {
  108.  
  109. private SQLiteDatabase db;
  110.  
  111. public Repository(SQLiteDatabase db) {
  112. this.db = db;
  113. }
  114.  
  115. private ContentValues fillModelValues(Model model) {
  116. ContentValues values = new ContentValues();
  117. values.put(Model.GROUP, model.getGroup());
  118. values.put(Model.NAME, model.getName());
  119.  
  120. return values;
  121. }
  122.  
  123. public void insert(Model model) {
  124. ContentValues values = fillModelValues(model);
  125. db.insertOrThrow(Model.TABLE, null, values);
  126. }
  127.  
  128. public List<Model> consDataBase(Context context) {
  129.  
  130. List<Model> listModel = new ArrayList<>();
  131.  
  132. Cursor cursor = db.query(Model.TABLE, null, null, null, null, null, null);
  133.  
  134. if (cursor.getCount() > 0) {
  135. cursor.moveToFirst();
  136.  
  137. do {
  138. Model model = new Model();
  139. model.setId(cursor.getLong(cursor.getColumnIndex(Model.ID)));
  140. model.setGroup(cursor.getString(cursor.getColumnIndex(Model.GROUP)));
  141. model.setName(cursor.getString(cursor.getColumnIndex(Model.NAME)));
  142.  
  143. listModel.add(model);
  144.  
  145. } while (cursor.moveToNext());
  146. }
  147.  
  148. cursor.close();
  149.  
  150. return listModel;
  151. } }
  152.  
  153. public class MainActivity extends AppCompatActivity {
  154.  
  155. private List<Model> listModel;
  156. private LinearLayoutManager layoutManager;
  157. private RecyclerView recyclerView;
  158. private RecyclerViewAdapter recyclerViewAdapter;
  159.  
  160. private FloatingActionButton fab;
  161.  
  162. private DataBase dataBase;
  163. private SQLiteDatabase db;
  164. private Repository repository;
  165.  
  166. @Override
  167. protected void onCreate(Bundle savedInstanceState) {
  168. super.onCreate(savedInstanceState);
  169. setContentView(R.layout.activity_main);
  170.  
  171. layoutManager = new LinearLayoutManager(this);
  172. recyclerView = (RecyclerView) findViewById(R.id.recyclerView);
  173. recyclerView.setLayoutManager(layoutManager);
  174.  
  175. fab = (FloatingActionButton) findViewById(R.id.fab);
  176. fab.setOnClickListener(new View.OnClickListener() {
  177. @Override
  178. public void onClick(View view) {
  179. startActivityForResult(new Intent(MainActivity.this, AddGroup.class), 4);
  180. }
  181. });
  182.  
  183. try {
  184. dataBase = new DataBase(this);
  185. db = dataBase.getWritableDatabase();
  186. repository = new Repository(db);
  187.  
  188. listModel = repository.consDataBase(context);
  189. recyclerViewAdapter = new RecyclerViewAdapter(context, listModel);
  190. recyclerView.setAdapter(recyclerViewAdapter);
  191. recyclerView.setHasFixedSize(true);
  192.  
  193. } catch (SQLException e) {
  194.  
  195. }
  196. }
  197.  
  198. @Override
  199. protected void onDestroy() {
  200. super.onDestroy();
  201. if (db != null) {
  202. db.close();
  203. }
  204. }
  205.  
  206. @Override
  207. protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  208. super.onActivityResult(requestCode, resultCode, data);
  209.  
  210. if (requestCode == 4) {
  211.  
  212. listModel = repository.consDataBase(context);
  213. recyclerViewAdapter = new RecyclerViewAdapter(context, listModel);
  214. recyclerView.setAdapter(recyclerViewAdapter);
  215. }
  216. } }
  217.  
  218. public class AddGroup extends AppCompatActivity {
  219.  
  220. private EditText editTextGroup;
  221. private EditText editTextName;
  222.  
  223. private DataBase dataBase;
  224. private SQLiteDatabase db;
  225. private Repository repository;
  226. private Model model;
  227.  
  228. @Override
  229. protected void onCreate(Bundle savedInstanceState) {
  230. super.onCreate(savedInstanceState);
  231. setContentView(R.layout.activity_add_group);
  232.  
  233. editTextGroup = (EditText) findViewById(R.id.editTextGroup);
  234. editTextName = (EditText) findViewById(R.id.editTextName);
  235.  
  236. try {
  237. dataBase = new DataBase(this);
  238. db = dataBase.getWritableDatabase();
  239. repository = new Repository(db);
  240. model = new Model();
  241.  
  242. } catch (SQLException e) {
  243.  
  244. }
  245. }
  246.  
  247. private void saveModel() {
  248. try {
  249. model.setGroup(editTextGroup.getText().toString().trim());
  250. model.setName(editTextName.getText().toString().trim());
  251. if (model.getId() == 0) {
  252. repository.insert(model);
  253. }
  254.  
  255. } catch (Exception e) {
  256.  
  257. }
  258. }
  259.  
  260. @Override
  261. protected void onDestroy() {
  262. super.onDestroy();
  263. if (db != null) {
  264. db.close();
  265. }
  266. }
  267.  
  268. @Override
  269. public boolean onCreateOptionsMenu(Menu menu) {
  270. MenuInflater inflater = getMenuInflater();
  271. inflater.inflate(R.menu.menu_add_group, menu);
  272.  
  273. return super.onCreateOptionsMenu(menu);
  274. }
  275.  
  276. @Override
  277. public boolean onOptionsItemSelected(MenuItem item) {
  278. if (item.getItemId() == R.id.action_save) {
  279. saveModel();
  280.  
  281. }
  282. return super.onOptionsItemSelected(item);
  283. } }
  284.  
  285. public RecyclerViewAdapter(Context context, List<Model> model) {
  286. this.context = context;
  287. this.model = model;
  288. }
  289.  
  290. @Override
  291. protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  292. super.onActivityResult(requestCode, resultCode, data);
  293. if (requestCode == 4) {
  294. listModel.clear();
  295. listModel.addAll(repository.consDataBase(context));
  296. recyclerViewAdapter.notifyDataSetChanged();
  297. }
  298. }
  299.  
  300. public class RecyclerViewAdapter extends RecyclerView.Adapter<ViewHolder> {
  301.  
  302. private List<Model> model;
  303. private Context context;
  304.  
  305. public RecyclerViewAdapter(Context context, List<Model> model) {
  306. this.context = context;
  307. this.model = new ArrayList<>(model);
  308. }
  309.  
  310. ...
  311.  
  312. public void notify(List<Model> list) {
  313. if (model != null) {
  314. model.clear();
  315. model.addAll(list);
  316.  
  317. } else {
  318. model = list;
  319. }
  320. notifyDataSetChanged();
  321. }
  322. }
  323.  
  324. @Override
  325. protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  326. super.onActivityResult(requestCode, resultCode, data);
  327.  
  328. if (requestCode == 4) {
  329. listModel = repository.consDataBase(this);
  330. recyclerViewAdapter.notify(listModel);
  331. }
  332. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement