我使用扩展的ArrayAdapter填充ListActivity的ListView,以便为它返回的数据应用一些条件。由于几个可能的原因,适配器可能返回一个空集,并且由于这些条件是由用户设置的,我想在android:empty视图上使用setText()反馈信息。在ListActivity(setListAdapter之前和之后)我试过
TextView t = new TextView(this);
t.setText("HEY!");
getListView().setEmptyView(t);
以及
getListView().getEmptyView().setVisibility(View.GONE);
TextView t = new TextView(this);
t.setText("HEY!");
((ViewGroup)getListView().getParent()).addView(t);
getListView().setEmptyView(t);
但我只在布局android:empty。
中获取消息谢谢!
答案 0 :(得分:8)
我很惊讶这没有出现并且已经得到了回答......我认为它非常有用。没有花太多时间去寻找答案:
MyAdapter mAdapter = new MyAdapter(this, R.layout.file_row, data);
setListAdapter(mAdapter);
ListView listView = (ListView)findViewById(android.R.id.list);
if (mShowOnlySomeSubset) {
listView.setEmptyView(findViewById(R.id.emptySubset));
} else if (mShowOnlySomeOtherSubset) {
listView.setEmptyView(findViewById(R.id.emptyOtherSubset));
} else {
listView.setEmptyView(findViewById(android.R.id.empty));
}
R.id.emptySubset和R.id.emptyOtherSubset是在与android:list和android:empty元素相同的布局.xml文件中定义的TextViews的id。
轻松的peasy:)
答案 1 :(得分:3)
你可以试试这个:
http://www.littlefluffytoys.com/?p=74
基本上他们说你必须确保在使用之前将emptyView添加到视图层次结构中。
TextView emptyView = new TextView(context);
emptyView.setLayoutParams(
new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
emptyView.setText(“This appears when the list is empty”);
emptyView.setVisibility(View.GONE);
((ViewGroup)list.getParent()).addView(emptyView);
list.setEmptyView(emptyView);
答案 2 :(得分:2)