1

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

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

当没有找到/空/零结果时,我可以在下面的代码中添加条件吗?

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);
}

提前非常感谢!

4

2 回答 2

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
}
于 2013-10-02T13:54:37.347 回答
0

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

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

您还可以通过指定正确的 ID 在 XML 中设置视图@android:id/empty

<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"/>
于 2013-10-02T13:56:40.040 回答