Pergunta

I have a class retrieving data from user's calendar, where I test the event title for displaying info, if data is empty, then print a message saying no upcoming events. Printing a valid event is working properly, but when there's no calendar event it won't return the that the data is empty. Here are some codes:

   public class CalendarEventFragment extends Fragment {

    private static final String TAG = "CalendarEventFragment";

    private TextView mEventDate;
    private TextView mDivider;
    private TextView mEventTime;
    private TextView mEventTitle;

    //event data
    List<CalendarEvent> mCalendarEvents;
    String mDateString;
    String mTimeString;
    String mTitleString;

    public CalendarEventFragment() {

    }

    public CalendarEventFragment(List<CalendarEvent> calendarEvents, int i) {
        mCalendarEvents = calendarEvents;
            mDateString = calendarEvents.get(i).getmEventDate() + "/" +
                    calendarEvents.get(i).getmEventMonth() + "/" +
                    calendarEvents.get(i).getmEventYear();
            mTimeString = calendarEvents.get(i).getmEventStartTime();
            mTitleString = calendarEvents.get(i).getmEventTitle();
    }

    private boolean checkData() {
        return mDateString != null || mTimeString != null || mTitleString != null;
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View root = inflater.inflate(R.layout.widget_calendar, container, false);

        Log.e(TAG, "cal created");
        mEventDate = (TextView) root.findViewById(R.id.event_date);
        mDivider = (TextView) root.findViewById(R.id.divider);
        mEventTime = (TextView) root.findViewById(R.id.event_time);
        mEventTitle = (TextView) root.findViewById(R.id.event_title);

        mEventDate.setText(mDateString);
        mEventTime.setText(mTimeString);
        if(mTitleString != null) {
            mEventTitle.setText(mTitleString);
        }else{
            mEventTitle.setText(getString(R.string.null_calendar_data));
        }

        return root;
    }
}
Foi útil?

Solução

Its string so check its value.
Check like below

if(!TextUtils.isEmpty(myString))


System.out.println("myString is not empty");
else
System.out.println("myString is empty");

Outras dicas

Try mDateString != null && mDateString.trim().length() > 0

you could also try using this

TextUtils.isEmpty(mDateString)

this will return true if empty or even null.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top