Я делаю приложение, которое использует ListView
для отображения элементов БД. Но в первом открытии или когда пользователь удалит все БД будет пустым, а затем ListView покажет пустой экран. Я хочу показать сообщение, когда это произойдет. Не только TextView, но и Button
. Например, «DB теперь пуст. Нажмите кнопку и попробуйте добавить некоторые записи». ListView
setEmptyView
метод позволяет только добавить TextView
. Возможно ли создать макет и показать его, когда ListView
пуст?Empty ListView показать другую активность
ответ
Вы можете использовать свойство 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);
Вы можете динамически добавлять кнопку в макете деятельности, если ваш список пуст. Установите 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();
}
});
Позвольте мне знать, если это помогает.
Он работает спасибо. но это не то, что я хотел. таким образом не красиво. Я имею в виду, что это очень статично. Я хочу показать макет. С изображениями и кнопками на нем. Но этот код действительно работает. –
Вы можете предварительно определить макет, содержащий текстовое представление и кнопку, как было указано в вашем вопросе, и установить его видимость = в вашем xml или в Java-коде. Когда представление списка будет пустым, вы можете установить видимость вида listview.setVisibility (View.GONE) и установить макет (содержащий кнопку и текстовое изображение) layout.setVisibility (View.VISIBLE)
Не работает. Показывает пустой список –
Проверьте этот код. –
работ. но я могу отобразить альтернативный макет, а не только просмотр текста? –