是否可以将视图传递给ListView Adapter类?

时间:2015-09-16 09:33:35

标签: android listview android-filter

我的布局中有一个TextView和一个ListView。我正在进行Filter操作,结果在ListView中设置。如果结果为null,那么我想设置"没有结果"在我的TextView中。 是否可以通过Adapter类的构造函数传递TextView,以便我可以设置文本,如果结果为null?

2 个答案:

答案 0 :(得分:0)

您可以使用setEmptyView()

  1. 在您的布局上,将TextView的展示率设置为android:visibility="gone"
  2. 在您的活动中,使用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();
        }
    }