Мне нужно отобразить 3 случайных изображения из моей базы данных sqlite по горизонтали. Поскольку невозможно сделать горизонтальный ListView
, я манипулировал своим способом, сделав 3 ListViews рядом друг с другом внутри горизонтальной LinearLayout
.
Итак, я сейчас использую этот метод:
final ListView g = (ListView)findViewById(R.id.lstText1);
final ListView h = (ListView)findViewById(R.id.lstText2);
final ListView i = (ListView)findViewById(R.id.lstText3);
g.setOnItemClickListener(this);
h.setOnItemClickListener(this);
i.setOnItemClickListener(this);
// Set the adapter to our custom adapter (below)
g.setAdapter(new MySimpleCursorAdapter(this, R.layout.toplist,
managedQuery(Uri.withAppendedPath(Provider.CONTENT_URI,
Database.Project.NAME), new String[] { BaseColumns._ID,
Database.Project.C_SMALLIMAGE}, null, null, "RANDOM() LIMIT 1"),
new String[] { Database.Project.C_SMALLIMAGE }, new int[] {R.id.image1}));
h.setAdapter(new MySimpleCursorAdapter(this, R.layout.toplist,
managedQuery(Uri.withAppendedPath(Provider.CONTENT_URI,
Database.Project.NAME), new String[] { BaseColumns._ID,
Database.Project.C_SMALLIMAGE}, null, null, "RANDOM() LIMIT 1"),
new String[] { Database.Project.C_SMALLIMAGE }, new int[] {R.id.image1}));
i.setAdapter(new MySimpleCursorAdapter(this, R.layout.toplist,
managedQuery(Uri.withAppendedPath(Provider.CONTENT_URI,
Database.Project.NAME), new String[] { BaseColumns._ID,
Database.Project.C_SMALLIMAGE}, null, null, "RANDOM() LIMIT 1"),
new String[] { Database.Project.C_SMALLIMAGE }, new int[] {R.id.image1}));
Все работает отлично по порядку, за исключением того, что показанные случайным образом изображения должны различаться между собой. С моим методом выше, так как я использую 3 разных ListViews, иногда они показывают одинаковые случайные изображения.
Кто-нибудь может дать мне решение моей проблемы? возможно, изменив эту строку "RANDOM() LIMIT 1"
или еще, я в любом случае открыт для любых решений.
Большое спасибо!