我的布局中有一个TextView和一个ListView。我正在进行Filter操作,结果在ListView中设置。如果结果为null,那么我想设置"没有结果"在我的TextView中。 是否可以通过Adapter类的构造函数传递TextView,以便我可以设置文本,如果结果为null?
答案 0 :(得分:0)
您可以使用setEmptyView()
。
TextView
的展示率设置为android:visibility="gone"
在您的活动中,使用TextView
ListView
的实例设置为setEmptyView()
ListView listView = (ListView) findViewById(R.id.your_list_view);
listView.setEmptyView(findViewById(R.id.your_empty_text_view));
答案 1 :(得分:0)
我通过构造函数传递了TextView,并在publishResults中检查了结果并相应地设置了可见性
@Override
protected void publishResults(CharSequence constraint,
FilterResults results) {
try{
filteredModelItemsArray=new ArrayList<MarkerRowItem>();
filteredModelItemsArray = (ArrayList<MarkerRowItem>) results.values;
if(results != null && results.count > 0) {
notifyDataSetChanged();
noResultTextView.setVisibility(View.GONE);
} else {
notifyDataSetInvalidated();
noResultTextView.setVisibility(View.VISIBLE);
}
}
catch(Exception e)
{
e.printStackTrace();
}
}