(用什麼我迄今制定出更新的注意問題) 我寫的是具有由下記錄位置的應用程序: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