按下按钮后,会执行查询,如果有数据或没有返回数据,则返回数据。然后将此数据发送到我的列表视图。如果查询中有结果,则一切都按预期工作。如果没有返回数据,我有一个子句,以便TextView
创建 an 并向用户显示一条消息。
想象一下,我在按下按钮时执行了一个查询,但没有返回任何数据。我的消息按预期呈现给用户。如果然后我执行返回一些数据的查询,则消息会消失,并且列表视图会按预期填充。现在想象一下,在没有数据的第一个查询之后(将消息呈现给用户),我执行了另一个仍然没有返回数据的查询。显示消息(可能显示在前一个消息的“上方”),如果我现在使用数据执行查询,我的列表视图已填充,但消息仍然存在。
有人能解释一下为什么会发生这种情况吗?在查询结果后,所有以前的无结果消息都消失并且列表视图“单独”消失,我该怎么办?
这是我的代码:
searchButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//GETS THE DATA
ListView listContent = (ListView) findViewById(android.R.id.list);
MySimpleAdapt arrayListAdapter = new MySimpleAdapt(Search.this, allData);
listContent.setAdapter(arrayListAdapter);
if (allData.size() == 0) {
TextView emptyView = new TextView(getApplicationContext());
emptyView.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
emptyView.setTextColor(Color.BLACK);
emptyView.setText(R.string.notFound);
emptyView.setPadding(4, 30, 4, 30);
emptyView.setTextSize(30);
emptyView.setVisibility(View.GONE);
emptyView.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);
if (getListView().getParent() != null) {
((ViewGroup) getListView().getParent()).addView(emptyView);
}
getListView().setEmptyView(emptyView);
}
}
});