I am using a paginator with several fragments.
I want to show a message when there are no records in the list ( Fragment ).
I tried using Textview with android:id="@id/android:empty , but it does not work.
Custom List Layout Code:
<?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>
List of adapter classes:
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; } }
List parsing method:
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; }
source share