我正在尝试从ListActivity中的ListView顶部显示TextView,但文本没有显示。
LayoutInflater inflater = (LayoutInflater)getSystemService( Context.LAYOUT_INFLATER_SERVICE );
View layout = inflater.inflate( R.layout.main, null );
TextView myTextView = (TextView)layout.findViewById( R.id.myTextView );
myTextView.setVisibility( View.VISIBLE );
myTextView.setText( R.string.emptyList );
setContentView( layout );
这是主要布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView android:id="@+id/myTextView"
android:paddingLeft="10dp"
android:paddingTop="10dp"
android:textSize="16sp"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:visibility="gone"/>
<ListView
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
如果列表视图为空,我希望在屏幕顶部显示“空列表”通知。
答案 0 :(得分:3)
为什么不将setEmptyView用于ListView并以此方式进行通知。
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ListView
android:layout_width="fill_parent"
android:layout_height="300dip"
android:id="@+id/list_view" />
<TextView
android:id="@+id/empty_list_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="List view is empty"
android:visibility="gone" />
</LinearLayout>
并致电您的代码。
ListView listView = (ListView) findViewById( R.id.list_view );
listView.setEmptyView( findViewById( R.id.empty_list_view ) );
listView.setAdapter(yourAdapter);
检查这些以获取更多信息。
Correct use of setEmtpyView in AdapterView
http://www.technotalkative.com/android-listview-setemptyview/
答案 1 :(得分:1)
您可以使用FrameLayout
代替LinearLayout
,这样TextView
和ListView
将共享相同的布局空间(尽管不严格必要)
然后,您可以将ListView
空视图设置为myTextView
,它会自动为您显示或隐藏空视图。
答案 2 :(得分:0)
我不确定你对TextView的意思。当活动加载时,您是否尝试在列表上方放置某些内容?在这种情况下,将它添加到LinearLayout列表上方就可以了。
要获取您所指的“空列表”通知,请确保您使用的活动扩展ListActivity,而不仅仅是Activity,并且相应的视图标题为“list”和“empty”。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<ListView
android:id="@+id/android:list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
<TextView
android:id="@+id/android:empty"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="@string/empty_user_list"/>
</LinearLayout>