2014-12-21 6 views
1

Я знаю, что есть много ответов о том, как показывать сообщение, когда ListView пуст, но я хочу сделать два сообщения.Показать пользовательское сообщение, когда ListView пуст, и если нет интернета

  1. Когда нет никаких данных - стандартного «пустого сообщения»
  2. Когда нет интернета, и я не могу получать данные - пользовательское «никакого сообщения интернет»

Вот мой XML:

<?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="match_parent" 
    android:background="@drawable/background"> 

    <ProgressBar 
     android:id="@+id/main_progressbar" 
     style="?android:attr/progressBarStyle" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerInParent="true" 
     android:visibility="gone" /> 

    <ListView 
     android:id="@android:id/list" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_margin="5dp"></ListView> 

    <ViewStub 
     android:id="@android:id/empty" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center" 
     android:layout="@layout/no_data_stub" /> 

</RelativeLayout> 

Как вы можете видеть, это только один случай, он показывает пустое сообщение, но мне нужно другое.

+0

Ну, я сделал это только для одного специального сообщения, когда данные пустые, я понятия не имею, как разделить его на два пользовательских сообщения. Во всяком случае, я отредактировал вопрос, если это поможет. –

+1

Найдите, как определить, подключен ли интернет к Android. На это ответили десятки раз. Затем выберите, какую строку использовать, исходя из того, включена ли она или нет. –

ответ

0

Вот как я это сделал:

<?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="match_parent" 
    android:background="@drawable/background"> 

    <ProgressBar 
     android:id="@+id/main_progressbar" 
     style="?android:attr/progressBarStyle" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerInParent="true" 
     android:visibility="gone" /> 

    <ListView 
     android:id="@android:id/list" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_margin="5dp"></ListView> 

    <TextView 
     android:id="@+id/emptyTextView" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:gravity="center" 
     android:layout_centerInParent="true" 
     android:text="halo"/> 

</RelativeLayout> 

теперь я могу позвонить в emptyTextView, так:

ListView listView = (ListView) rootView.findViewById(android.R.id.list); 
    TextView emptyTextView = (TextView) rootView.findViewById(R.id.emptyTextView); 
    emptyTextView.setText("test"); 
    listView.setEmptyView(emptyTextView); 

Теперь я могу установить любой текст, я хочу после того, как, например, проверка подключения к Интернету.

Смежные вопросы