我正在创建一个使用ListView
来显示数据库元素的应用程序。但是在第一次打开或用户删除所有内容时DB将为空,然后ListView将显示空白屏幕。我希望在它发生时显示一条消息。不仅是TextView,还有Button
。例如“DB现在为空。单击按钮并尝试添加一些记录”。 ListView
的{{1}}方法仅允许添加setEmptyView
。是否真的可以创建布局并在TextView
为空时显示它?
答案 0 :(得分: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);
答案 1 :(得分: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();
}
});
如果有帮助,请告诉我。
答案 2 :(得分:0)
您可以按照问题中的说明预先定义包含文本视图和按钮的布局,并在xml或java代码中设置它的visibility = gone。当列表视图为空时,您可以设置可见性listview.setVisibility(View.GONE)的可见性并设置您的布局(包含按钮和textview)layout.setVisibility(View.VISIBLE)