(用什么我迄今制定出更新的注意问题) 我写的是具有由下记录位置的应用程序:SELECT DISTINCT不工作的Android SQLite的
id(primary), state, region, area, latitude, longitude
我能得到的所有数据屏幕,但我只想列出的状态,只有国家没有任何其他数据。每个唯一条目也只有一个条目。即新南威尔士州1个,而不是全部99个。然后用户将选择他们所居住的所需状态,然后它将显示一个新的数据表格,仅用于该状态。 (我指的是NSW,VIC,QLD等)
类'Dataprovider和recyclerview类也可以正常工作,所以除非有人想看到它,否则我会保留这些代码。
这里是有问题的数据库类。
public class MyDatabase extends SQLiteAssetHelper {
private static final String DATABASE_NAME = "ReefData.db";
private static final int DATABASE_VERSION = 1;
public MyDatabase(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
setForcedUpgrade();
}
public Cursor getData(){
SQLiteDatabase db = getReadableDatabase();
SQLiteQueryBuilder qb = new SQLiteQueryBuilder();
String [] sqlSelect = {"0 _id", "state", "area", "region", "latitude", "longitude"};
String sqlTables = "Reefs";
qb.setTables(sqlTables);
Cursor c = qb.query(db, sqlSelect, null, null, null, null, null);
c.moveToFirst();
return c;
}}
所以我第一次尝试如下:
String [] sqlSelect = {"0 _id", "state=DISTINCT", "area", "region", "latitude", "longitude"};
但只是给我一个错误。
,所以我改变它回到了一部开拓创新,并修改查询,如下所示:
String [] sqlSelect = {"0 _id", "state", "area", "region", "latitude", "longitude"};
Cursor c = qb.query(db, sqlSelect, "state= 'TAS'", null, null, null, null);
而这个工作现在只为TAS数据。我甚至可以修改它
Cursor c = qb.query(db, sqlSelect, "state= 'TAS' and region='Flinders Island'", null, null, null, null);
它的工程很棒。
但是,我怎样才能得到一个只有状态的列表,并且每个只有一个。我会想做以下但它不起作用:
Cursor c = qb.query(db, sqlSelect, "state = DISTINCT", null, null, null, null);
任何想法?
更新:所以我已经在附加的图像中尝试以下,所以我越来越接近解决方案,但不是那里。仍然需要帮助来解决这个问题。
什么错误它给你? – JMRboosties
就当我运行它,我得到:“不幸的是,APPNAME已停止OK” – timv
哈你的声音新的,那好吧,我会解释。我假设你正在使用Android Studio。当手机连接到编译代码的计算机时,可以单击Android Studio程序底部的Android监视器选项卡。寻找来自您的应用的错误日志(最有可能的红色文本)。这会给你一些关于什么崩溃和哪里(指向导致崩溃的确切代码行)的细节。与我们分享这里,我们可以帮助你弄清楚。 – JMRboosties