2012-12-24 47 views
0

我想在ListActivity内的ListView上显示一个TextView,但文本没有显示出来。如何让ListView显示在ListView之上?

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> 

我想要一个“空列表”通知去在屏幕的情况下,顶部的列表视图是空的。

回答

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/

+0

这是你应该做的,为空列表中显示的消息.. – Chrispix

+0

虽然不是绝对必要的东西,我更喜欢使用一个单独的布局文件为空视图列表项,但无论如何+1。 – Squonk

+0

我应该在setListAdapter()和setContentView()之前或之后调用setEmptyView吗? – Phillip

1

你可以使用一个FrameLayout代替LinearLayout,这样,无论是TextViewListView将共享相同的布局空间(虽然不是绝对必要的)

然后你可以ListView空视图设置为myTextView,这将需要显示或自动隐藏空视图为你的照顾。

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>