Мне нужно отобразить 3 случайных изображения из моей базы данных sqlite по горизонтали. Так как невозможно сделать горизонтальный ListView
, я манипулировал своим путем, сделав 3 ListViews рядом друг с другом внутри горизонтально ориентированного LinearLayout
.Android: unrepeated SQLite Random() Query
Поэтому я использую этот метод в настоящее время:
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"
, иначе, я все равно открыт для любых решений.
спасибо!
ты однажды сказал мне, что я лучше использовать ListView -__- в любом случае спасибо, почему ты всегда меня? хе-хе. Я хочу сделать OnClickListener, как объявить длинный идентификатор, OnClick только позволяет мне рассматривать как его аргумент – hectichavana
yeap, но только если вы покажете 3 элемента в одном ListView ... – Selvin
как насчет onClickListener? Как сделать так, чтобы я мог назвать длинный идентификатор? : public void onClick (View v, long id) { \t \t Intent listIntent = новое намерение (это, DetailsActivity.class); \t \t listIntent.setData (Uri.withAppendedPath (Uri.withAppendedPath ( \t \t \t \t Provider.CONTENT_URI, Database.Project.NAME), Лонг \t \t \t \t .ToString (ID))); \t \t startActivity (listIntent); \t \t} – hectichavana