2016-02-21 3 views
1

Я делаю приложение, которое использует ListView для отображения элементов БД. Но в первом открытии или когда пользователь удалит все БД будет пустым, а затем ListView покажет пустой экран. Я хочу показать сообщение, когда это произойдет. Не только TextView, но и Button. Например, «DB теперь пуст. Нажмите кнопку и попробуйте добавить некоторые записи». ListViewsetEmptyView метод позволяет только добавить TextView. Возможно ли создать макет и показать его, когда ListView пуст?Empty ListView показать другую активность

ответ

2

Вы можете использовать свойство setEmptyView.

Если список пуст и нужный вам дисплей.

ListView listView = (ListView) findViewById(R.id.lst); 
    View child = getLayoutInflater().inflate(R.layout.empty_view, null); 
    ((ViewGroup)listView.getParent()).addView(child); 
    listView.setEmptyView(child); 
+0

Не работает. Показывает пустой список –

+0

Проверьте этот код. –

+0

работ. но я могу отобразить альтернативный макет, а не только просмотр текста? –

0

Вы можете динамически добавлять кнопку в макете деятельности, если ваш список пуст. Установите onClickListner на кнопку и переопределите onClick().

См ниже код:

LinearLayout linear = (LinearLayout)findViewById(R.id.layout); 
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
     LinearLayout.LayoutParams.MATCH_PARENT, 
     LinearLayout.LayoutParams.WRAP_CONTENT); 
Button btn = new Button(this); 
btn.setId("btnDynamic"); 
btn.setText("Go to create entry page"); 
linear.addView(btn, params); 

btn.setOnClickListener(new View.OnClickListener() { 
    public void onClick(View view) { 
     Toast.makeText(view.getContext(), 
       "Button clicked index = " + id_, Toast.LENGTH_SHORT) 
       .show(); 
    } 
}); 

Позвольте мне знать, если это помогает.

+0

Он работает спасибо. но это не то, что я хотел. таким образом не красиво. Я имею в виду, что это очень статично. Я хочу показать макет. С изображениями и кнопками на нем. Но этот код действительно работает. –

0

Вы можете предварительно определить макет, содержащий текстовое представление и кнопку, как было указано в вашем вопросе, и установить его видимость = в вашем xml или в Java-коде. Когда представление списка будет пустым, вы можете установить видимость вида listview.setVisibility (View.GONE) и установить макет (содержащий кнопку и текстовое изображение) layout.setVisibility (View.VISIBLE)