开发者

Android Multiple SimpleCursorAdapter

开发者 https://www.devze.com 2023-03-05 21:19 出处:网络
I\'m working on a little App which works with a SQLite Database... i\'m showing a picture (green, yellow or red) which depends on a priority.

I'm working on a little App which works with a SQLite Database... i'm showing a picture (green, yellow or red) which depends on a priority. i have 3 priorities (high, medium and low...) and i'm getting those cursors as following:

cursorh = dbAdapter.fetchAllHighPrio();
cursorm = dbAdapter.fetchAllMedPrio();
cursorl = dbAdapter.fetchAllLowPrio();

Then i'm calling some other stuff like this:

startManagingCursor(curso开发者_JAVA百科rh);
startManagingCursor(cursorm);
startManagingCursor(cursorl);

String[] from = new String[] { TodoDbAdapter.KEY_SUMMARY };
int[] to = new int[] { R.id.label };

SimpleCursorAdapter noteh = new SimpleCursorAdapter(this,
        R.layout.todo_row_high, cursorh, from, to);
SimpleCursorAdapter notem = new SimpleCursorAdapter(this,
        R.layout.todo_row_med, cursorm, from, to);
SimpleCursorAdapter notel = new SimpleCursorAdapter(this,
        R.layout.todo_row_low, cursorl, from, to);

so then i have all of my stuff prepared to show on my list... but if i use setListAdapter i can only use 1 of them. since i have 3 different layouts with the different cursors, this is really pretty hard to do. How can i get all those 3 SimpleCursorAdapters to show in my list now?

EDIT: Maybe i wasnt clear enough... All of this data is in only one table... but since i have 3 different layouts (because of the different priority colors) i need to add them seperately... or is there any other way of just saying like if the priority equals 'high' put this image in layout so i only need one SimpleCursorAdapter?


You can create a VIEW that would combine data from all 3 tables + an extra column to tell which table the data came from. Then you query from it and return appropriate row Views in a custom CursorAdapter.


To my knowledge, you would be unable to attach more than one adapter to a ListView. Unfortunately, I think you may need to approach this in a little different way.

  1. You could stick with one adapter and make sure your sorting is correct in your database query.
  2. You could create one adapter and loop through each cursor, adding items to that single adapter (probably not a Cursor Adapter but more like an ArrayAdapter).
  3. You could, I suppose, Use a LinearLayout with 3 ListViews weighted to 1 each and have 3 separately scrolling lists on the screen at one time...

Depending on how you actually want the application to work, there could be several different approaches.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号