Advertisement
Guest User

Untitled

a guest
Dec 12th, 2018
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.41 KB | None | 0 0
  1. IzéItemDao:
  2. Az alap SQL lekérdezést 3 másikra cseréltem, a fv neveket nyugodtan módosítsd (kötelező jelleggel)
  3. @Query("SELECT * FROM seriesitem ORDER BY date")
  4. List<SeriesItem> getAllbyDate();
  5.  
  6. @Query("SELECT * FROM seriesitem ORDER BY title")
  7. List<SeriesItem> getAllbyTitle();
  8.  
  9. @Query("SELECT * FROM seriesitem ORDER BY category")
  10. List<SeriesItem> getAllbyCategory();
  11.  
  12. Az activytben meg ezt varázsoltam át:
  13.  
  14. private void loadItemsInBackground(final int mode) {
  15. new AsyncTask<Void, Void, List<SeriesItem>>() {
  16.  
  17. @Override
  18. protected List<SeriesItem> doInBackground(Void... voids) {
  19. switch(mode) {
  20. case 0: return database.seriesItemDao().getAllbyDate();
  21. case 1: return database.seriesItemDao().getAllbyCategory();
  22. case 2: return database.seriesItemDao().getAllbyTitle();
  23. default:return database.seriesItemDao().getAllbyTitle();
  24. }
  25. }
  26.  
  27. @Override
  28. protected void onPostExecute(List<SeriesItem> seriesItems) {
  29. adapter.update(seriesItems);
  30. }
  31. }.execute();
  32. }
  33.  
  34. Itt a "mode"-ot konkrétan bármi mással csinálhatod, a lényeg hogy tudd valahogy paraméterezni a loadItemsInBackgroung fv-t,
  35. és ezt hívjad meg annak a gombnak/spinnernek/fasztudja minek a kódjában amit használsz a megfelelő paraméterrel.
  36.  
  37. Én ezt egy egyszerű (azaz nem a 400 soros xD) spinnerrel csináltam, de azzal még így is sok a macera, azért iderakom:
  38.  
  39. @Override
  40. public boolean onCreateOptionsMenu(Menu menu) {
  41. // Inflate the menu; this adds items to the action bar if it is present.
  42. getMenuInflater().inflate(R.menu.android_action_bar_spinner_menu, menu); <--Lejebb megtalálod az xml-t
  43.  
  44. MenuItem item = menu.findItem(R.id.spinner);
  45. Spinner spinner = (Spinner) item.getActionView();
  46.  
  47. ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
  48. R.array.spinner_list_item_array, android.R.layout.simple_spinner_item); <--Meg ehhez is
  49. adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
  50. spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
  51. @Override
  52. public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
  53. loadItemsInBackground((int)id);
  54. }
  55.  
  56. @Override
  57. public void onNothingSelected(AdapterView<?> parent) {
  58.  
  59. }
  60. });
  61. spinner.setAdapter(adapter);
  62. return true;
  63. }
  64.  
  65. menu.android_action_bar_spinner_menu:
  66.  
  67. <menu xmlns:android="http://schemas.android.com/apk/res/android"
  68. xmlns:app="http://schemas.android.com/apk/res-auto"
  69. xmlns:tools="http://schemas.android.com/tools"
  70. tools:context="hu.bme.aut.seriesrate.MainActivity">
  71. <item
  72. android:id="@+id/spinner"
  73. android:title="ActionBar Spinner"
  74. app:actionViewClass="android.widget.Spinner"
  75. android:background="#ff00"
  76. app:showAsAction="always" />
  77. </menu>
  78.  
  79. values.arrays.xml :
  80. <?xml version="1.0" encoding="utf-8"?>
  81. <resources>
  82. <string-array name="spinner_list_item_array">
  83. <item>Last check date</item>
  84. <item>Category</item>
  85. <item>Title</item>
  86. </string-array>
  87. </resources>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement