Here are your 3 options: 1- pick adapter type dynamically based on data, 2- convert data from one type to another 3- implement an adapter that reads multiple data types.
Option 1, pick adapter dynamically. - Sounds like the easiest solution, unless something is preventing you from doing this -- like having to display data from 2 sources simultaneously.
Option 2, convert data. - Also good solution. It's easy to read a cursor into a list or map imo, and then just implement one adapter that reads mapped data. @Luksprog has also made an option 2 solution - which is to instead feed simpleCursorAdapter a MatrixCursor that has your other data. But either way, you're converting your data to a uniform type.
Option 3, teach adaper to read multiple data types. - This is more complicated, but seems to be the "answer" to your question framed as teaching your adapter to read multiple data types. For this, simpleCursorAdapter doesn't seem a solution to me, because it doesn't give you control over the Views -- it internally binds cursor columns to view elements by matching resource Id's. Thus it's a poor choice for teaching how to read non-cursor data. If you go this route, I think the only option is the non-cursor adapters, like baseAdapter.
But again, solutions 1-2 are preferable. If you need option 3, then I would use a baseAdapter