当没有要显示的文本时,将 textview 可见性设置为 GONE

Posted

技术标签:

【中文标题】当没有要显示的文本时,将 textview 可见性设置为 GONE【英文标题】:setting textview visibility to GONE when there is no text to show 【发布时间】:2011-05-20 12:00:45 【问题描述】:

我有一个列表视图,其中有 2 个文本视图,其中一个文本视图默认包含零文本,但可以由用户更改。问题是当文本视图为空时我需要这样做,它的可见性设置为 GONE。我对这可能如何工作有两个想法,要么在 xml 中定义它,要么在数据库中以某种方式定义它。

public long createDate(String date) 
    ContentValues initialValues1 = new ContentValues();
    initialValues1.put(KEY_DATE, date);
    initialValues1.put(KEY_TIMESTAMP, "00:00");

    if(text=="")
       initialValues1.put(KEY_DICTTAG,View.GONE); //this does NOT work
    else
       initialValues1.put(KEY_DICTTAG,text);
    

    initialValues1.put(KEY_DICTALARMTIME, "0");
    initialValues1.put(KEY_DICTLISTIMAGE, R.drawable.list_icon);
    return mdiktationsDb.insert(DATABASE_TABLE, null, initialValues1);

我知道当没有文本时用户不会看到文本视图,但可以这么说,我需要它不被系统看到。这是因为当 dicttag 文本视图中没有文本时,我需要时间戳文本视图在相对布局中居中。我无法发布 xml 布局,因为我没有任何空间

【问题讨论】:

我认为我们需要更多地了解您的代码。例如initialValues1 是什么?请提供更多上下文:) 我现在更新了我的帖子;) 【参考方案1】:

目前还不清楚实际问题是什么,但这里......

首先,您确定您的 if 语句工作正常吗?您正在将 Java 中的字符串与 == 进行比较。我不知道text 在哪里,但请改用if (text.equalsIgnoreCase(""))

其次,TextView 上的TextView.setVisibility(View.GONE) 应该可以按预期工作,前提是您在主 UI 线程上处理它。您始终可以覆盖您的 ListView 适配器并制作一个自定义适配器,并在那里为 ListView 中的每个项目执行可见性操作。有很多帖子和教程可以做到这一点。

【讨论】:

如何在列表中的 1 个特定项目上使用 TextView.setVisibility(View.GONE)?不制作自定义适配器? 我没有做过类似的事情,我总是制作我的自定义适配器,因为它让我以一种优雅的方式完全控制。 @emil 编写自定义适配器对任何 android 开发人员的健康都有好处。不怕! 好的,我得试试看!在我们说话时寻找一个简单的教程,如果你知道一个,请链接到它:) 不仅想现在如何去做,而且想知道它给我带来了什么好处,以及如何使用 custum 适配器与库存适配器不同: )【参考方案2】:

txt.setVisibility(View.GONE) 用于隐藏 txt.setVisibility(View.VISIBLE);作秀

【讨论】:

【参考方案3】:

尝试if (text.equals ("")) 而不是if (text == "")

【讨论】:

以上是关于当没有要显示的文本时,将 textview 可见性设置为 GONE的主要内容,如果未能解决你的问题,请参考以下文章

在 AlertDialog 正按钮上更改 textView 的可见性

应用ellipsize时,获取textview中可见字符的数量

可以将TextView放在RadioGroup中。但是,这是好的做法吗?

当滚动超出最初可见的范围时,无法访问 recyclerview 中的 textview

在复选框和文本框上使用相同的功能切换可见性[重复]

Android 可访问性将对讲限制为仅读取可见文本