列表视图为空时如何显示消息?

时间:2014-06-11 20:23:24

标签: android android-listview

我是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>

1 个答案:

答案 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,或者您可以为空视图使用单独的布局文件。