2016-01-28 58 views
1

我需要一些ORMLite的幫助。我有ListView和從API下載的對象。在每個項目上我都有ToggleButton。點擊那個TB項目被添加到我的數據庫並且TB stata被檢查爲「被點擊」。這一切都發生在我的主要片段中,但是當我切換片段並再次返回到主片段時,TB再次被設置爲「未點擊」。所以,我需要做的是檢查何時創建主要的片段,如果來自listView的對象存在於數據庫中,並且如果是的話,請檢查ToggleButton狀態爲單擊(我認爲這將是一個正確的選項),但我不知道如何寫查詢爲:/ORMLite if exists存在查詢

這裏是我的適配器代碼爲DB添加項:

@Override 
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 
    if(isChecked) { 
     try { 
      final Dao<Concert, Integer> concertDao = getHelper().getConcertDao(); 
      concertDao.create(concertList.get(position)); 
     } catch (SQLException e) { 
      e.printStackTrace(); 
     } 
    } 
} 
+0

你說的是也許用'dao.createOrUpdate( )'方法?如果你正在討論查詢,你是否正在研究'dao.queryBuilder()'? – Gray

+0

我在說查詢 - 我需要檢查對象是否在數據庫中。我試圖使用QueryBuilder,但不知道如何編寫查詢負責。 – Bartos

回答

5

的方法來完成此地塊。我建議看看QueryBuilder documentation。你可以很明顯這樣做:

if (concertDao.queryForId(concert.getId()) != null) { 
    // the concert exists in the database 
} 

如果你不想反序列化對象,你可以做這樣的事情:

if (concertDao.queryBuilder().where().eq("id", concert.getId()).countOf() > 0) { 
    // the concert exists in the database 
} 
+0

謝謝你,它工作:)你救了我的一天! :) – Bartos