android 布局为以编程方式制作的列表视图的空视图

android layout as emptyview of a listview programmatically made

我有一个 Activity extends ListActivity,我必须在其中以编程方式创建一个 ListView(没有 xml)。

要为其设置一个空视图,唯一可行的方法是我在另一个线程中找到的以下代码:

    TextView emptyView = new TextView(this);
    ((ViewGroup) getListView().getParent()).addView(emptyView);
    getListView().setEmptyView(emptyView);

现在我的目标是使用布局而不是 TextView 来做同样的事情,所以我用它的 id 做了一个 xml 并这样写:

    View emptyView = findViewById(R.id.empty_view_xml);
    ((ViewGroup) getListView().getParent()).addView(emptyView);
    getListView().setEmptyView(emptyView);

但是好像不行..

您的问题:

因为你的视图(empty_view_xml)在activityxml中不存在,所以调用findViewById(R.id.empty_view_xml);会return一个null 值,并将 null 设置为 emptyView 将不执行任何操作。

您当前的代码:.setEmptyView(emptyView); 类似于 .setEmptyView(null);

解决这个问题:

您需要扩充您的自定义 xml,然后将其添加为 EmptyView:

LayoutInflater inflater = LayoutInflater.from(YourActivity.this);
View emptyView = inflater.inflate(R.layout.empty_view_xml, null, false);
((ViewGroup) getListView().getParent()).addView(emptyView);
getListView().setEmptyView(emptyView);