我是Android编程新手。这是我的代码。请帮助。
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState)
{
ListView view = (ListView) inflater.inflate(R.layout.fragment_alarms,container, false);
String[] titles = getResources().getStringArray(R.array.drawer_menu_list);
view.setAdapter(new ArrayAdapter<String>(getActivity(),
R.layout.drawer_list_item, titles));
view.setAdapter(mAdapter.setCurrentSeverityAlarm(0));
mListView = view;
mAdapter.refresh(mSpinnerAdapter);
return view;
}
xml文件:
<ListView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/list_alarms"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/alarm_list_vertical_margin"
android:paddingLeft="@dimen/alarm_list_horizontal_margin"
android:paddingRight="@dimen/alarm_list_horizontal_margin"
android:paddingTop="@dimen/alarm_list_vertical_margin"
android:divider="@android:color/transparent"
android:dividerHeight="@dimen/alarm_list_divider_height"
android:scrollbars="none">
</ListView>
答案 0 :(得分:3)
ListView有一个setEmptyView(View)
方法。如果您的列表为空,则会自动显示您传递给此方法的视图。
最简单的方法是在布局中包含空视图。您的XML和Java最终会看起来像这样:
XML
<ListView ... />
<TextView
android:id="@+id/empty_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Nothing to show" />
爪哇
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View layout = inflater.inflate(R.layout.fragment_alarms,container, false);
ListView view = (ListView) layout.findViewById(R.id.list_arlams);
View emptyView = layout.findViewById(R.id.empty_view);
// ...
view.setEmptyView(emptyView);
return layout;
}
如果您想要将其保留在XML之外,您当然也可以以编程方式实例化View,或者您可以为空视图使用单独的布局文件。