我使用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);
}
非常感谢!
答案 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
<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"/>