数据库查询在没有结果时显示消息

时间:2013-10-02 13:47:34

标签: java android eclipse android-activity

我使用eclipse创建了一个很好的应用程序,类似于字典应用程序 - 基本上是可搜索的术语列表。我想在用户搜索不存在的术语时创建一个新活动。目前,当发生这种情况时,列表视图是空白的,我认为这不是很有帮助所以我至少想要一个弹出窗口或者说“没有这样的术语”或“请提交这个新术语”或者而不是空白。

每当我寻找这个挑战的答案时,我都会受到与数据库问题等相关的问题的轰炸。

如果找不到/ null / zero结果,我可以在下面的代码中添加一个条件吗?

public void search(View view) { 
  cursor = db.rawQuery(
      "SELECT _id, term, definition FROM term WHERE term LIKE ?", 
      new String[]{"%" + searchText.getText().toString() + "%"});

  adapter = new SimpleCursorAdapter(
      this, 
      R.layout.term_list_layout, 
      cursor, 
      new String[] {"term", "definition"}, 
      new int[] {R.id.term, R.id.definition});

  setListAdapter(adapter);
}

非常感谢!

2 个答案:

答案 0 :(得分:1)

您需要将列表视图的setEmptyView()用于没有结果时要显示的内容

修改

像这样检查光标

if(cursor.moveToFirst()){
    //cursor is no empty, set up list
    adapter = new SimpleCursorAdapter(
  this, 
  R.layout.term_list_layout, 
  cursor, 
  new String[] {"term", "definition"}, 
  new int[] {R.id.term, R.id.definition});

  setListAdapter(adapter);
}else{
    //cursor is empty start new activity
}

答案 1 :(得分:0)

如果我正确理解您的问题,您希望使用列表视图的“空”视图。只要列表视图不包含任何条目,就会显示此视图。

mMyListView.setEmptyView(findViewById(R.id.emptyView));

您还可以通过指定正确的ID @android:id/empty

来设置XML视图
<ListView android:id="@android:id/list"
       android:layout_width="match_parent"
       android:layout_height="match_parent"/>

<TextView android:id="@android:id/empty"
       android:layout_width="match_parent"
       android:layout_height="match_parent"
       android:text="List is empty"
       android:gravity="center"/>