原问题来自于CSDN问答频道,更多解决方案见:http://ask.csdn.net/questions/1656
原问题描述:
设置一个 ListActivity的默认view。
我试过:
TextView emptyView = new TextView(this); emptyView.setText("No lists available"); this.getListView().setEmptyView(emptyView);
但是没实现。
解决方案:
问题出在emptyView没有绑定别的东西。如果你用addView():
TextView emptyView = new TextView(this); ((ViewGroup) getListView().getParent()).addView(emptyView); emptyView.setText("It's empty!"); getListView().setEmptyView(emptyView);
就可以了。
写了一简单的交替empty和full的:
public class Example extends ListActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); TextView emptyView = new TextView(this); ((ViewGroup) getListView().getParent()).addView(emptyView); emptyView.setText("It's empty!"); getListView().setEmptyView(emptyView); getListView().postDelayed(new Runnable() { @Override public void run() { if(getListAdapter() == null) setListAdapter(new ArrayAdapter<String>(Example.this, android.R.layout.simple_list_item_1, new String[] {"It", "Has", "Content"})); else setListAdapter(null); getListView().postDelayed(this, 2000); } }, 2000); } }