Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- IzéItemDao:
- Az alap SQL lekérdezést 3 másikra cseréltem, a fv neveket nyugodtan módosítsd (kötelező jelleggel)
- @Query("SELECT * FROM seriesitem ORDER BY date")
- List<SeriesItem> getAllbyDate();
- @Query("SELECT * FROM seriesitem ORDER BY title")
- List<SeriesItem> getAllbyTitle();
- @Query("SELECT * FROM seriesitem ORDER BY category")
- List<SeriesItem> getAllbyCategory();
- Az activytben meg ezt varázsoltam át:
- private void loadItemsInBackground(final int mode) {
- new AsyncTask<Void, Void, List<SeriesItem>>() {
- @Override
- protected List<SeriesItem> doInBackground(Void... voids) {
- switch(mode) {
- case 0: return database.seriesItemDao().getAllbyDate();
- case 1: return database.seriesItemDao().getAllbyCategory();
- case 2: return database.seriesItemDao().getAllbyTitle();
- default:return database.seriesItemDao().getAllbyTitle();
- }
- }
- @Override
- protected void onPostExecute(List<SeriesItem> seriesItems) {
- adapter.update(seriesItems);
- }
- }.execute();
- }
- Itt a "mode"-ot konkrétan bármi mással csinálhatod, a lényeg hogy tudd valahogy paraméterezni a loadItemsInBackgroung fv-t,
- és ezt hívjad meg annak a gombnak/spinnernek/fasztudja minek a kódjában amit használsz a megfelelő paraméterrel.
- É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:
- @Override
- public boolean onCreateOptionsMenu(Menu menu) {
- // Inflate the menu; this adds items to the action bar if it is present.
- getMenuInflater().inflate(R.menu.android_action_bar_spinner_menu, menu); <--Lejebb megtalálod az xml-t
- MenuItem item = menu.findItem(R.id.spinner);
- Spinner spinner = (Spinner) item.getActionView();
- ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
- R.array.spinner_list_item_array, android.R.layout.simple_spinner_item); <--Meg ehhez is
- adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
- spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
- @Override
- public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
- loadItemsInBackground((int)id);
- }
- @Override
- public void onNothingSelected(AdapterView<?> parent) {
- }
- });
- spinner.setAdapter(adapter);
- return true;
- }
- menu.android_action_bar_spinner_menu:
- <menu xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:app="http://schemas.android.com/apk/res-auto"
- xmlns:tools="http://schemas.android.com/tools"
- tools:context="hu.bme.aut.seriesrate.MainActivity">
- <item
- android:id="@+id/spinner"
- android:title="ActionBar Spinner"
- app:actionViewClass="android.widget.Spinner"
- android:background="#ff00"
- app:showAsAction="always" />
- </menu>
- values.arrays.xml :
- <?xml version="1.0" encoding="utf-8"?>
- <resources>
- <string-array name="spinner_list_item_array">
- <item>Last check date</item>
- <item>Category</item>
- <item>Title</item>
- </string-array>
- </resources>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement