在Android中动态添加和删除TextView

Bor*_*ain 5 android arraylist viewgroup android-framelayout

我已经设置了一个FrameLayout,它有一个TextView顶部ListView.现在,在MainActivity执行一些代码之后,我检查它是否ListView为空.如果是,我显示TextView,如果没有,我删除TextView.

代码如下:

以下是main.xml文件:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/flMain"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/tvAddItem"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:text="Add some subjects"
        android:textSize="20sp" />

    <ListView
        android:id="@+id/ItemsList"
        android:layout_width="match_parent"
        android:layout_height="0dip"
        android:layout_weight="1" />

</FrameLayout>
Run Code Online (Sandbox Code Playgroud)

在MainActivity类中,我执行以下操作:

MainActivity.java

TextView tvNoItem = (TextView) findViewById(R.id.tvAddItem);
ListView subListView = (ListView) findViewById(R.id.itemsList);
FrameLayout fl = (FrameLayout) findViewById(R.id.flMain);

ArrayList<Item> itemsList;

//some code

if(itemsList.isEmpty()) {
    fl.addView(tvNoItem);
} else {
    fl.removeView(tvNoItem);
}
Run Code Online (Sandbox Code Playgroud)

现在,当我运行它并将一些项添加到列表中时,TextView(tvNoItem)确实被删除了.但我看到的只是一个空白列表 - 列表项目不可见.[顺便说一下,名单工作正常.当我删除了TextViewmain.xml,我可以看到所有的列表项.]请帮忙.

Tus*_*dey 12

    txtview.setVisibility(View.GONE) ;
    txtview.setVisibility(View.VISIBLE) ;
Run Code Online (Sandbox Code Playgroud)


Adi*_*mro 3

你为什么不使用ListView\'semptyView选项。

\n\n

这是一篇关于在适配器为空时显示空视图的好文章。当您的适配器源为空时,它将自动显示。

\n\n

Android \xe2\x80\x93 ListView => setEmptyView()

\n\n

您不需要检查您的数据源是否(ArrayList)是否为空,Android框架将处理所有隐藏和显示的实现。

\n\n

请务必setEmptyView()setAdapter()致电ListView

\n