ListView android:代码中为空

ListView android:代码中为空,android,listview,Android,Listview,在XML中创建自定义ListView时,可以在id中添加android:id/empty标记,以便在ListView为空时显示该视图;正如本文中提到的。我只是想知道,有没有人知道如何在代码中动态地执行等效操作 更新这是我所拥有的: public class CustomList extends ListView { public CustomList(Context context) { // some initialization TextView

在XML中创建自定义ListView时,可以在id中添加
android:id/empty
标记,以便在ListView为空时显示该视图;正如本文中提到的。我只是想知道,有没有人知道如何在代码中动态地执行等效操作

更新这是我所拥有的:

public class CustomList extends ListView {
     public CustomList(Context context) {
         // some initialization
         TextView text = new TextView(context);
         // some parameters like text size, color, and font are set here
         setEmptyView(text);
     }
}
setEmptyView
似乎无效,事实上,它只是在ListView变为空时导致所有内容都消失。

非常简单。使用

框架布局是Android开发者用来组织视图控件的最简单、最有效的布局类型之一。与其他一些布局相比,它们的使用频率较低,这仅仅是因为它们通常仅用于显示一个视图或重叠的视图。框架布局通常用作容器布局,因为它通常只有一个子视图(通常是另一个布局,用于组织多个视图)

例如:

<FrameLayout android:id="@+id/list_and_empty_message_container"
        android:layout_height="wrap_content" android:layout_width="fill_parent"
        android:orientation="vertical">
        <!-- List view -->
        <ListView android:id="@+id/main_list_view"
            android:background="@android:color/transparent"
            android:layout_width="fill_parent" android:layout_height="wrap_content"
            android:cacheColorHint="#00000000" android:layout_gravity="top"
            android:divider="#D7C3F8" android:dividerHeight="2dip" />
        <TextView android:text="No info Found." android:id="@+id/list_empty_txt"
            android:layout_height="wrap_content" android:textSize="16.1sp"
            android:textStyle="bold" android:typeface="monospace"
            android:layout_marginLeft="5dip" android:layout_gravity="center_vertical"
            android:gravity="center" android:textColor="#000000"
            android:layout_width="fill_parent" android:visibility="gone" />
    </FrameLayout>
我会帮你解决你的问题

快乐编码:)

非常简单。使用

框架布局是Android开发者用来组织视图控件的最简单、最有效的布局类型之一。与其他一些布局相比,它们的使用频率较低,这仅仅是因为它们通常仅用于显示一个视图或重叠的视图。框架布局通常用作容器布局,因为它通常只有一个子视图(通常是另一个布局,用于组织多个视图)

例如:

<FrameLayout android:id="@+id/list_and_empty_message_container"
        android:layout_height="wrap_content" android:layout_width="fill_parent"
        android:orientation="vertical">
        <!-- List view -->
        <ListView android:id="@+id/main_list_view"
            android:background="@android:color/transparent"
            android:layout_width="fill_parent" android:layout_height="wrap_content"
            android:cacheColorHint="#00000000" android:layout_gravity="top"
            android:divider="#D7C3F8" android:dividerHeight="2dip" />
        <TextView android:text="No info Found." android:id="@+id/list_empty_txt"
            android:layout_height="wrap_content" android:textSize="16.1sp"
            android:textStyle="bold" android:typeface="monospace"
            android:layout_marginLeft="5dip" android:layout_gravity="center_vertical"
            android:gravity="center" android:textColor="#000000"
            android:layout_width="fill_parent" android:visibility="gone" />
    </FrameLayout>
我会帮你解决你的问题


快乐编码:)

检查我的更新答案我使用setEmptyView尝试了什么,它成功了。我可以向您保证,它只是设置了适配器,一些点击事件监听器,除此之外,什么都没有。根本不了解您要做的事情。请检查我的更新答案。我尝试使用setEmptyView进行了哪些操作,并且效果良好。我可以向您保证,它只是设置了适配器、一些触摸和点击事件侦听器,什么都没有。根本不了解您要做的事情。
public void onContentChanged() {  
    super.onContentChanged();  
    View emptyView = findViewById(com.android.internal.R.id.empty);  
    mList = (ListView)findViewById(com.android.internal.R.id.list);  
    if (mList == null) {  
        throw new RuntimeException(  
                "Your content must have a ListView whose id attribute is " +  
                "'android.R.id.list'");  
    }  
       //Take a look here
    if (emptyView != null) {  
        mList.setEmptyView(emptyView);  
    }  
    mList.setOnItemClickListener(mOnClickListener);  
    if (mFinishedStart) {  
        setListAdapter(mAdapter);  
    }  
    mHandler.post(mRequestFocus);  
    mFinishedStart = true;  
}