У меня есть ListFragment, который возвращает ListView. Если в списке нет элементов, я бы хотел вместо этого отобразить альтернативный TextView. Предположительно, вы можете добавить элемент TextView android:id="@android:id/empty" в XML.
Но...
Добавление FrameLayout, содержащего оба ListView и TextView, предсказуемо дает мне "FrameLayout нельзя привести к ListView".
Я также не могу просто добавить элемент TextView. "Разметка в документе, следующая за корневым элементом, должна быть правильной формы".
И я не могу переключиться на View вместо ListView, потому что это уже не будет списком.
... как мне это сделать?
Код:
@Override
public View onCreateView ( LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState ) {
adapter = new ArrayAdapter<Project> ( getActivity (), android.R.layout.simple_list_item_1 );
arrayList = ProjectManager.getProjectList ( getActivity () );
for ( Project p : arrayList ) {
if ( p.getStatus () == Project.ONGOING ) {
adapter.add ( p );
}
}
ListView listView = ( ListView ) inflater.inflate ( R.layout.list, container, false );
listView.setAdapter ( adapter );
return listView;
}
XML:
<ListView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="wrap_content" />