Intereting Posts
Виртуальное устройство Android Studio на виртуальной машине Windows 7 не совместимо Читать файл As String Каковы некоторые из параметров параметров api-камеры для api-камеры для эффективного фотографирования при перемещении камеры пользователем? Android – создание списка с плавающими заголовками Как добавить функциональность WebRTC в приложение для Android Как я могу принудительно запустить метод onPrepareOptionsMenu? Как использовать экран блокировки пароля по умолчанию в нашем приложении для Android? Не удалось найти свойство 'outputFile' на com.android.build.gradle.internal.api.ApplicationVariantImpl Почему мой носитель не указан как DataSource в Google Fit API? Как изменить рейтинг Android? Отправить запрос приложения всем друзьям в Facebook с помощью «Запроса Диалог» на Android Android: отображение изображения с SD CARD С использованием ресурсов по умолчанию в выпадающей папке (размер MDPI), какая точка в папке drawable-mdpi? Как установить кнопку не кликабельную во время анимации на Android? Как установить часы Genymotion?

Как использовать setEmptyView () с настраиваемым списком в ListFragment

Я использую paginator с несколькими Fragments .

Я хочу показать сообщение, когда в списке нет записей ( Fragment ).

Я попытался использовать Textview с android:id="@id/android:empty но он не работает.

Код компоновки пользовательского списка:

 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="@dimen/padding_medium" > <TextView android:id="@+id/label_value" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_centerVertical="true" android:layout_marginLeft="@dimen/padding_medium" android:text="@string/label_value" android:textColor="@android:color/white" android:textSize="18sp" /> <TextView android:id="@+id/label_date" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_centerVertical="true" android:layout_marginRight="@dimen/padding_medium" android:text="@string/title_time" android:textColor="@android:color/white" android:textSize="16sp" /> </RelativeLayout> 

Список адаптеров:

 public class JournalAdapter extends ArrayAdapter<String> { private final Context context; private final List<String> values; private final List<String> dates; public JournalAdapter(Context context, List<String> values, List<String> dates) { super(context, R.layout.layout_journal_list, values); this.context = context; this.values = values; this.dates = dates; } @Override public View getView(int position, View convertView, ViewGroup parent) { LayoutInflater inflater = (LayoutInflater) context .getSystemService(Context.LAYOUT_INFLATER_SERVICE); View rowView = inflater.inflate(R.layout.layout_journal_list, parent, false); TextView value = (TextView) rowView.findViewById(R.id.label_glucose); TextView date = (TextView) rowView.findViewById(R.id.label_date); value.setText(values.get(position)); date.setText(dates.get(position)); return rowView; } } 

Перечислить метод парсинга:

 private void initListView() { values = dataSource.getAllValues(); List<String> values = new ArrayList<String>(); List<String> dates = new ArrayList<String>(); for (Value value : values) { values.add(Double.toString(value.getValue())); dates.add(secondsToDate(value.getDate())); } setListAdapter(new JournalAdapter(context, values, dates)); listView = getListView(); listView.setEmptyView(noItems("NO ITEMS")); listView.setOnItemClickListener(this); } 

noItems метод:

 private TextView noItems(String text) { TextView emptyView = new TextView(context); emptyView.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); emptyView.setText(text); emptyView.setTextColor(Color.WHITE); emptyView.setTextSize(20); emptyView.setVisibility(View.GONE); emptyView.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL); return emptyView; } 

Solutions Collecting From Web of "Как использовать setEmptyView () с настраиваемым списком в ListFragment"

Это сработало для меня (получил решение по этому вопросу , заданному Уильямом Ремаклом ). Возможно, вы пропустили добавление созданного TextView в родительский макет ListView (вторая строка кода внизу метода noItems ниже):

В моем ListFragment я использовал следующий метод, чтобы получить представление для пустого представления:

 private TextView noItems(String text) { TextView emptyView = new TextView(getActivity()); //Make sure you import android.widget.LinearLayout.LayoutParams; emptyView.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)); //Instead of passing resource id here I passed resolved color //That is, getResources().getColor((R.color.gray_dark)) emptyView.setTextColor(getResources().getColor(R.color.gray_dark)); emptyView.setText(text); emptyView.setTextSize(12); emptyView.setVisibility(View.GONE); emptyView.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL); //Add the view to the list view. This might be what you are missing ((ViewGroup) getListView().getParent()).addView(emptyView); return emptyView; } 

Затем в onStart() ListFragment задайте пустой вид:

 @Override public void onStart() { super.onStart(); getListView().setEmptyView( noItems(getResources().getString(R.string.widget_empty))); } 
  android:id="@android:id/empty" 

и не

  android:id="@id/android:empty"