如果 TextView 为空,则设置可见性消失

use*_*911 1 android textview android-view

大家好,为什么这段代码不起作用?我让 TextView 从 sqlite 数据库获取值,我想检查它是否为空隐藏 TextView。

mTel1 = (TextView) findViewById(R.id.tv_tel1);
    String ed_text = mTel1.getText().toString().trim();

    if(ed_text.length() == 0 || ed_text.equals("") || ed_text == null)
    {
        mTel1.setVisibility(View.VISIBLE);

    }
    else
    {
        mTel1.setVisibility(View.GONE);
    }
Run Code Online (Sandbox Code Playgroud)

XML

  <TextView
        android:id="@+id/tv_tel1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="3dp"
        android:layout_marginLeft="5dp"
        android:layout_marginRight="5dp"
        android:layout_marginTop="3dp"
        android:background="@drawable/border"
        android:clickable="true"
        android:padding="10dp"
        android:textColor="#0066cc"
        android:textSize="18sp" />
Run Code Online (Sandbox Code Playgroud)

小智 5

Try this:

    if(ed_text.length() == 0 || ed_text.equals(""))
    {
        mTel1.setVisibility(View.GONE);
    } else {
        mTel1.setVisibility(View.VISIBLE);
    }
Run Code Online (Sandbox Code Playgroud)

Also, remember to always set visibility ="gone" in XML:

<TextView
    android:id="@+id/tv_tel1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginBottom="3dp"
    android:layout_marginLeft="5dp"
    android:layout_marginRight="5dp"
    android:layout_marginTop="3dp"
    android:background="@drawable/border"
    android:clickable="true"
    android:padding="10dp"
    android:textColor="#0066cc"
    android:visibility="gone"
    android:textSize="18sp" />
Run Code Online (Sandbox Code Playgroud)