我有以下设置,空视图文本没有显示...
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getListView().setEmptyView(findViewById(R.id.empty));
getListView().setTextFilterEnabled(true);
setListAdapter(null);// to have empty list
}
布局文件是:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:id="@+id/myScrollLayout"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:orientation="vertical" xmlns:android="http://schemas.android.com/apk/res/android">
<FrameLayout android:layout_width="fill_parent"
android:layout_height="0dip" android:layout_weight="1">
<ListView android:id="@android:id/list" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:drawSelectorOnTop="false" />
<!-- Here is the view to show if the list is emtpy -->
<ScrollView
android:id="@android:id/empty" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView android:id="@+id/emptyText" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:text="@string/contact_empty_help"
android:textSize="20sp" android:textColor="?android:attr/textColorSecondary"
android:paddingLeft="10dip" android:paddingRight="10dip"
android:paddingTop="10dip" android:lineSpacingMultiplier="0.92" />
</ScrollView>
</FrameLayout>
</LinearLayout>
字符串定义为:
<string name="contact_empty_help">"You don't have any contacts to display.\n\nTo add contacts, you have to:\n
\n<li><font fgcolor="#ffffffff">Go to <b>Contacts</b></font> application to create new contacts\n</li>
\n<li><font fgcolor="#ffffffff"><b>Import from VCF file</b></font>, this is available in Contacts menu, the file most be on the root of the SD card\n</li>"
</string>
由于列表为空,它应该显示已定义的文本。我按照List8中的示例
https://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/List8.html
https://developer.android.com/resources/samples/ApiDemos/res/layout/list_8.xml
答案 0 :(得分:5)
我错过了setContentView(R.layout.listview);
,因此,findViewById没有提取视图。
答案 1 :(得分:4)
实际上,你的java代码中不需要这一行
getListView().setEmptyView(findViewById(R.id.empty));
Android ID android:id="@android:id/list"
和android:id="@android:id/empty"
的几个独占!
祝你好运, 司PAR-为零。
答案 2 :(得分:-2)
应该不是
<ScrollView
android:id="@android:id/empty"
是
<ScrollView
android:id="@+id/empty"
?我不知道这是否有所不同。
你确定setListAdapter(null);
实际初始化了适配器,而不是忽略命令吗?