【问题标题】:setting textview visibility to GONE when there is no text to show当没有要显示的文本时,将 textview 可见性设置为 GONE
【发布时间】: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 是什么?请提供更多上下文:)
  • 我现在更新了我的帖子;)

标签: android listview textview visibility


【解决方案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 == "")

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多