检查活动

时间:2015-11-16 10:31:31

标签: android android-layout textview

我想知道是否可以针对活动/视图中的所有TextView进行检查,并使那些不具有任何内容的内容隐身?在设置文本时,我并不想在每个TextView周围包含if语句。

我目前有一项活动,它将使用数据库中的内容填充一系列TextView。但是,数据库中的某些字段可能没有任何内容并且保持干净的UI我想简单地使这些字段不可见而不是只是空白。

以下是我设置内容的地方:

public void settingContent() {

    eventTitle.setText(event.EventTitle);
    eventLocation.setText(event.SiteName);
    organiser.setText(event.Organiser);
    eventType.setText(event.setEventTitle());

    DateFormatter dateFormatter = new DateFormatter();

    String startDate = dateFormatter.getFormattedDate(event.StartDateTime);
    String endDate = dateFormatter.getFormattedDate(event.CloseDateTime);
    String eventDates = startDate + " - " + endDate;
    dates.setText(eventDates);

    cost.setText(event.FeeDetails);
    bookingContact.setText(event.BookingContactName);
    stewardContact.setText(event.StewardContactName);
    unitTypes.setText(event.MaxUnits);
    mapReference.setText(event.MapReference);
    eventNumber.setText(event.EventNumber);
    otherInformation.setText(event.OtherInformation);
    directions.setText(event.SiteRouting);

    if(event.isTempHoliday()) {
        eventIcon.setImageResource(R.drawable.icon_holidaysites_card);
    } else {
        eventIcon.setImageResource(R.drawable.icon_clubmeets_card);
    }
}

这是可能的,还是在设置之前必须检查每个TextView的情况?

1 个答案:

答案 0 :(得分:5)

List<TextView> lstTexts = new ArrayList<TextView>();
lstTexts.add(cost);
lstTexts.add(bookingContact);
lstTexts.add(stewardContact);
lstTexts.add(unitTypes);
lstTexts.add(mapReference);
lstTexts.add(eventNumber);
lstTexts.add(otherInformation);
lstTexts.add(directions);

//then you can run this method
boolean empty = checkAllTV(lstTexts);

这是它的方法。

public boolean checkAllTV(List<TextView> allTV){

     for(TextView tv : allTV){
         if(tv.getText().toString().equals("")||tv.getText().toString()==null)
               return false;
     }
     return true;
}

我在手机上,所以我无法检查代码!但是你可以得到这个想法 希望它有所帮助。