Advertisement
Guest User

Untitled

a guest
Dec 7th, 2019
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.12 KB | None | 0 0
  1. package hu.bme.aut.sportislife.race_events;
  2.  
  3. import android.app.DatePickerDialog;
  4. import android.content.Context;
  5. import android.os.AsyncTask;
  6. import android.os.Build;
  7. import android.os.Bundle;
  8.  
  9. import com.google.android.material.snackbar.Snackbar;
  10.  
  11. import androidx.annotation.RequiresApi;
  12. import androidx.appcompat.app.AppCompatActivity;
  13. import androidx.appcompat.widget.Toolbar;
  14. import androidx.recyclerview.widget.LinearLayoutManager;
  15. import androidx.recyclerview.widget.RecyclerView;
  16. import androidx.room.Room;
  17.  
  18. import android.util.Log;
  19. import android.view.LayoutInflater;
  20. import android.view.Menu;
  21. import android.view.MenuItem;
  22. import android.view.View;
  23. import android.widget.ArrayAdapter;
  24. import android.widget.Button;
  25. import android.widget.DatePicker;
  26. import android.widget.EditText;
  27. import android.widget.ImageButton;
  28. import android.widget.LinearLayout;
  29. import android.widget.Spinner;
  30. import android.widget.TextView;
  31.  
  32. import java.util.Calendar;
  33. import java.util.List;
  34.  
  35. import hu.bme.aut.sportislife.R;
  36. import hu.bme.aut.sportislife.adapter.RaceEventsAdapter;
  37. import hu.bme.aut.sportislife.data.RaceEventsItem;
  38. import hu.bme.aut.sportislife.data.RaceEventsListDatabase;
  39.  
  40. public class RaceEventsActivity extends AppCompatActivity
  41. implements DatePickerDialogFragment.OnDateSelectedListener, RaceEventsAdapter.RaceEventsItemClickListener {
  42.  
  43. String date = null;
  44.  
  45. private ImageButton deleteButton;
  46. private TextView dateText;
  47. private EditText nameEditText;
  48. private Spinner dropdown;
  49. private Button chooseDateButton;
  50. private Button saveButton;
  51. private LinearLayout listOfRows;
  52. private LayoutInflater inflater;
  53.  
  54. //adatbázis
  55. private RecyclerView recyclerView;
  56. private RaceEventsAdapter eventsAdapter;
  57. private RaceEventsListDatabase database;
  58.  
  59.  
  60. @Override
  61. protected void onCreate(Bundle savedInstanceState) {
  62. super.onCreate(savedInstanceState);
  63. setContentView(R.layout.activity_race_events);
  64. Toolbar toolbar = findViewById(R.id.toolbar);
  65. setSupportActionBar(toolbar);
  66.  
  67.  
  68. nameEditText = findViewById(R.id.salary_name);
  69. chooseDateButton = findViewById(R.id.dateButton);
  70. saveButton = findViewById(R.id.save_button);
  71. //listOfRows = findViewById(R.id.list_of_rows);
  72. dateText = findViewById(R.id.dateTextView);
  73. deleteButton = findViewById(R.id.RaceItemRemoveButton);
  74.  
  75. //sportok lenyíló listája
  76. dropdown = findViewById(R.id.raceType);
  77. final String[] items = new String[]{"Athletics", "Basketball", "Canoe", "Judo", "Swim"};
  78. ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_dropdown_item, items);
  79. dropdown.setAdapter(adapter);
  80.  
  81.  
  82. chooseDateButton.setOnClickListener(new View.OnClickListener() {
  83. @Override
  84. public void onClick(View view) {
  85. //datepicker dialog
  86. Calendar now = Calendar.getInstance();
  87.  
  88. DatePickerDialog datePickerDialog = new DatePickerDialog(RaceEventsActivity.this, new DatePickerDialog.OnDateSetListener() {
  89. @Override
  90. public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
  91. // TODO date kijelzése TEXTVIEWban
  92. date = dayOfMonth + "/" + (month+1) + "/" + year;
  93. dateText.setText(date);
  94. }
  95. }, now.get(Calendar.YEAR),
  96. now.get(Calendar.MONTH),
  97. now.get(Calendar.DAY_OF_MONTH));
  98.  
  99. datePickerDialog.show();
  100. }
  101. });
  102.  
  103.  
  104. inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
  105.  
  106.  
  107. /*String level_selected;
  108. final ImageView athletics, basketball, canoe, judo, swim;
  109. athletics = (ImageView) findViewById(R.drawable.athletics);
  110. basketball = (ImageView) findViewById(R.drawable.basketball);
  111. canoe = (ImageView) findViewById(R.drawable.kajakkenu);
  112. judo = (ImageView) findViewById(R.drawable.judo);
  113. swim = (ImageView) findViewById(R.drawable.swim);*/
  114.  
  115. ArrayAdapter<String> attractionsAdapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_dropdown_item, items);
  116.  
  117. dropdown = (Spinner) findViewById (R.id.raceType);
  118. dropdown.setAdapter(attractionsAdapter);
  119. //dropdown.setOnItemSelectedListener(this);
  120.  
  121.  
  122. saveButton.setOnClickListener(new View.OnClickListener() {
  123. @RequiresApi(api = Build.VERSION_CODES.N)
  124. @Override
  125. public void onClick(View view) {
  126.  
  127. if (nameEditText.getText().toString().isEmpty() || date == null) {
  128. Snackbar.make(view, "Nincs minden mezo kitoltve!", Snackbar.LENGTH_LONG)
  129. .setAction("Action", null).show();
  130. return;
  131. }
  132.  
  133. RaceEventsItem event = getRaceEventsItem();
  134.  
  135. createRaceEventsItem(event);
  136. nameEditText.setText("");
  137. dateText.setText("");
  138. //TODO dateTextview ""-ra
  139. date = null;
  140.  
  141. }
  142. });
  143.  
  144. deleteButton.setOnClickListener(new View.OnClickListener() {
  145. @Override
  146. public void onClick(View view) {
  147.  
  148. deleteRaceEventsItem();
  149.  
  150. }
  151. });
  152.  
  153. //adatbázis
  154.  
  155. /*FloatingActionButton fab = findViewById(R.id.fab);
  156. fab.setOnClickListener(new View.OnClickListener() {
  157. @Override
  158. public void onClick(View view) {
  159. // TODO implement shopping item creation
  160. }
  161. });*/
  162.  
  163. database = Room.databaseBuilder(
  164. getApplicationContext(),
  165. RaceEventsListDatabase.class,
  166. "raceevents-list"
  167. ).build();
  168.  
  169. initRecyclerView();
  170.  
  171. }
  172.  
  173. private RaceEventsItem getRaceEventsItem() {
  174. RaceEventsItem raceEventsItem = new RaceEventsItem();
  175.  
  176. //icon.setImageResource(chooseDateButton.isChecked() ? R.drawable.kajakkenu : R.drawable.judo);
  177. String selectedSport = dropdown.getSelectedItem().toString();
  178.  
  179. switch (selectedSport) {
  180. case "Athletics":
  181. raceEventsItem.raceType = RaceEventsItem.Category.ATHLETIC;
  182. break;
  183. case "Basketball":
  184. raceEventsItem.raceType = RaceEventsItem.Category.BASKETBALL;
  185. break;
  186. case "Canoe":
  187. raceEventsItem.raceType = RaceEventsItem.Category.CANOE;
  188. break;
  189. case "Judo":
  190. raceEventsItem.raceType = RaceEventsItem.Category.JUDO;
  191. break;
  192. case "Swim":
  193. raceEventsItem.raceType = RaceEventsItem.Category.SWIM;
  194. break;
  195. }
  196.  
  197. raceEventsItem.raceName = nameEditText.getText().toString();
  198. raceEventsItem.raceDate = date;
  199. return raceEventsItem;
  200. }
  201.  
  202. private void initRecyclerView() {
  203. recyclerView = findViewById(R.id.MainRecyclerView);
  204. eventsAdapter = new RaceEventsAdapter(this);
  205. loadItemsInBackground();
  206. recyclerView.setLayoutManager(new LinearLayoutManager(this));
  207. recyclerView.setAdapter(eventsAdapter);
  208. }
  209.  
  210. private void loadItemsInBackground() {
  211. new AsyncTask<Void, Void, List<RaceEventsItem>>() {
  212.  
  213. @Override
  214. protected List<RaceEventsItem> doInBackground(Void... voids) {
  215. return database.raceEventsItemDao().getAll();
  216. }
  217.  
  218. @Override
  219. protected void onPostExecute(List<RaceEventsItem> shoppingItems) {
  220. eventsAdapter.update(shoppingItems);
  221. }
  222. }.execute();
  223. }
  224.  
  225. @Override
  226. public void onItemChanged(final RaceEventsItem item) {
  227. new AsyncTask<Void, Void, Boolean>() {
  228.  
  229. @Override
  230. protected Boolean doInBackground(Void... voids) {
  231. database.raceEventsItemDao().update(item);
  232. return true;
  233. }
  234.  
  235. @Override
  236. protected void onPostExecute(Boolean isSuccessful) {
  237. Log.d("MainActivity", "ShoppingItem update was successful");
  238. }
  239. }.execute();
  240. }
  241.  
  242. public void createRaceEventsItem(final RaceEventsItem newItem) {
  243. new AsyncTask<Void, Void, RaceEventsItem>() {
  244.  
  245. @Override
  246. protected RaceEventsItem doInBackground(Void... voids) {
  247. newItem.id = database.raceEventsItemDao().insert(newItem);
  248. return newItem;
  249. }
  250.  
  251. @Override
  252. protected void onPostExecute(RaceEventsItem shoppingItem) {
  253. eventsAdapter.addItem(shoppingItem);
  254. }
  255. }.execute();
  256. }
  257.  
  258.  
  259. public void deleteRaceEventsItem() {
  260. new AsyncTask<Void, Void, RaceEventsItem>() {
  261. RaceEventsItem deletingItem = getRaceEventsItem();
  262.  
  263. @Override
  264. protected RaceEventsItem doInBackground(Void... voids) {
  265. return deletingItem;
  266. }
  267.  
  268. @Override
  269. protected void onPostExecute(RaceEventsItem shoppingItem) {
  270.  
  271. database.raceEventsItemDao().deleteItem(deletingItem);
  272. }
  273. }.execute();
  274. }
  275.  
  276. @Override
  277. public boolean onCreateOptionsMenu(Menu menu) {
  278. // Inflate the menu; this adds items to the action bar if it is present.
  279. getMenuInflater().inflate(R.menu.race_events_menu_main, menu);
  280. return true;
  281. }
  282.  
  283. @Override
  284. public boolean onOptionsItemSelected(MenuItem item) {
  285. int id = item.getItemId();
  286. if(id == R.id.action_delete_all){
  287.  
  288. }
  289.  
  290. if (id == R.id.action_delete_all) {
  291. listOfRows.removeAllViews();
  292. return true;
  293. }
  294.  
  295. return super.onOptionsItemSelected(item);
  296. }
  297.  
  298.  
  299. @Override
  300. public void onDateSelected(int year, int month, int day) {
  301.  
  302. }
  303. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement