ListView android:代码中为空
在XML中创建自定义ListView时,可以在id中添加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
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;
}