2016-01-28 156 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