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

时间:2010-12-05 11:19:29

标签: android listview textview visibility

我有一个列表视图,其中我有2个文本视图,其中一个textview默认包含零文本,但可以由用户更改。问题是当textview为空时我需要这样做,它的可见性设置为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);
}

我知道当没有文字时用户不会看到textview,但是我需要系统看不到它。这是因为当dicttag textview中没有文本时,我需要将时间戳文本视图置于相对布局中。我无法发布xml布局,因为我没有任何空间

3 个答案:

答案 0 :(得分:3)

有点不清楚实际问题是什么,但是这里...... [/ p>

首先,您确定if语句是否正常工作?您正在将Java中的String与==进行比较。我不知道text在哪里,而是使用if (text.equalsIgnoreCase(""))

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

答案 1 :(得分:1)

隐藏的txt.setVisibility(View.GONE) txt.setVisibility(View.VISIBLE); for show

答案 2 :(得分:1)

尝试使用if (text.equals (""))代替if (text == "")