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);
我有一个 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);