在Android中,如何使用相对布局,在另一个视图下显示一个视图(例如textview),但仅在有文本的情况下显示,即不为空

在Android中,如何使用相对布局,在另一个视图下显示一个视图(例如textview),但仅在有文本的情况下显示,即不为空,android,android-relativelayout,Android,Android Relativelayout,比如说,使用相对布局,我在第一行显示一个日期文本字段,然后在它旁边显示一个item textview,然后我想在item textview下面显示一个description textview,但前提是该描述不是空的。我们是否可以使用“条件”属性?我们怎么能这样做 谢谢 任何框架视图都没有此类条件属性 一种简单的方法是在Java代码中这样做: String description; TextView descriptionView; if (TextUtils.isEmpty(descripti

比如说,使用相对布局,我在第一行显示一个日期文本字段,然后在它旁边显示一个item textview,然后我想在item textview下面显示一个description textview,但前提是该描述不是空的。我们是否可以使用“条件”属性?我们怎么能这样做


谢谢

任何框架视图都没有此类条件属性

一种简单的方法是在Java代码中这样做:

String description;
TextView descriptionView;

if (TextUtils.isEmpty(description)) {
    descriptionView.setVisibility(View.GONE);
} else {
    descriptionView.setText(description);
    descriptionView.setVisibility(View.VISILBE);
}

当有内容要显示时,您可以将TextView放置在布局中您希望它位于的任何位置,当没有内容要显示时,只需将其隐藏。

TextView上有一个属性,可用于控制其可见性。 在xml中:

<TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/dependentTextViewId"
        android:visibility="invisible"
        />

条件互换!当description为空时,应该使视图消失,反之亦然,实际上,使用自定义SimpleAdapter并重写getView方法,您只需要执行隐藏TextView对象的部分。嘿感谢您在示例代码中提到TextUtils!!!我不知道这件事。我已经创建了自己的StringUtil类!!!这是我非常喜欢的,我们可以很容易地在Android中自定义我们的视图。。。如果我们知道怎么做!:-)事实上,我错了!我们确实需要将可见性设置回原来的位置!
TextView tv = (TextView) myView.findViewById(R.id.dependentTextViewId);
            tv.setVisibility(View.VISIBLE);
//Thanks to Tanis for providing the answer on conditionally hiding a TextView
//So the complete solution is to create a custom SimpleAdapter:
public class JournalDisplayListAdapter extends SimpleAdapter {
//--- some code skipped here
@Override
public View getView(int position, View convertView, ViewGroup parent) {
    View row = super.getView(position, convertView, parent);
    TextView activityGroupName;
    TextView activityDescription;
    if (row != null) {
        activityGroupName = (TextView) row.findViewById(R.id.activityGroupName);
       if (TextUtils.isEmpty(activityGroupName.getText())){
            activityGroupName.setVisibility(View.GONE);
       } else {
            activityGroupName.setVisibility(View.VISIBLE);   
         }
        activityDescription = (TextView) row.findViewById(R.id.activityDescription);
       if (TextUtils.isEmpty(activityDescription.getText())){
           activityDescription.setVisibility(View.GONE);
       }else {
            activityDescription.setVisibility(View.VISIBLE);   
         }
}

return row;

}