空ListView显示另一个活动

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了空ListView显示另一个活动相关的知识,希望对你有一定的参考价值。

我正在创建一个使用ListView来显示数据库元素的应用程序。但是在第一次打开或用户删除所有内容时DB将为空,然后ListView将显示空白屏幕。我希望在它发生时显示一条消息。不仅是TextView,还有Button。例如“DB现在为空。单击按钮并尝试添加一些记录”。 ListViewsetEmptyView方法允许只添加TextView。当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代码中设置它的visibility = gone。当列表视图为空时,您可以设置可见性listview.setVisibility(View.GONE)的可见性并设置您的布局(包含按钮和textview)layout.setVisibility(View.VISIBLE)

以上是关于空ListView显示另一个活动的主要内容,如果未能解决你的问题,请参考以下文章

片段事务分离和附加后ListView不工作?

刷新同一活动中剩余的当前片段(ListView 数据)

为啥我的 ListView 显示在一个片段中而不是另一个片段中?

从片段中ListView的onItemClick开始Activity

ArrayAdapter 要求资源 ID 为 TextView,ListView 无法转换为 TextView

无法设置 ListView 的适配器,因为 ListView 有一个空对象引用