The quickest change is to take out these lines in your switch:
adapter.changeCursor(recordsCursor);
adapter.notifyDataSetChanged();
and replace them with:
setListAdapter(adapter);
When you set the adapter to a new SimpleCursorAdapter, that doesn't propagate back to the ListView. The ListView still has a reference to the original adapter that was set with setListAdapter, while your new adapter isn't connected to any ListView.
The more elegant change would be to call changeCursorAndColumns:
case R.id.list2:
recordsCursor = dbHelper.fetchRecords2();
String[] from = new String[]{DbAdapter.KEY_W_SENDER};
int[] to = new int[]{R.id.text1};
Log.i(TAG, "count: "+recordsCursor.getCount()); // returns 0
adapter.changeCursorAndColumns(recordsCursor, from, to);
adapter.notifyDataSetChanged();
return true;
Note also that the constructor you're using has been deprecated since API 11:
This constructor was deprecated in API level 11.
This option is discouraged, as it results in Cursor queries being performed on the application's UI thread and thus can cause poor responsiveness or even Application Not Responding errors. As an alternative, use LoaderManager with a CursorLoader.