Android Tips Round-Up, Part 1

With my recent project I've been posting one Android class/method a day. People have been asking for an archive of these links, so every couple weeks I'm going to round them up here. I'll also be adding a bit of color commentary, but still the goal is for this not to be a ton of work for me. :)

More: Part 1 | Part 2 | Part 3 | Part 4 | Part 5

Activity.startActivities() - Nice for launching to the middle of an app flow.

TextUtils.isEmpty() - Simple utility I use everywhere.

Html.fromHtml() - Quick method for formatting Html. It's not particularly fast so I wouldn't use it constantly (e.g., don't use it just to bold part of a string - construct the Spannable manually instead), but it's fine for rendering text obtained from the web.

TextView.setError() - Nice UI when validating user input.

Build.VERSION_CODES - Not only is it handy for routing code, it's also summarizes behavioral differences between each version of Android.

Log.getStackTraceString() - Convenience utility for logging.

LayoutInflater.from() - Wraps the long-winded getSystemService() call in a simple utility.

ViewConfiguration.getScaledTouchSlop() - Using the values provided in ViewConfiguration ensures all touch interaction feels consistent across the OS.

PhoneNumberUtils.convertKeypadLettersToDigits - Makes handling phone number data a snap, as some companies provide them as letters.

Context.getCacheDir() - Use the cache dir for caching data. Simple enough but some don't know it exists.

ArgbEvaluator - Transition from one color to another. As was pointed out by Chris Banes, this class creates a lot of autoboxing churn so it'd be better to just rip out the logic and run it yourself.

ContextThemeWrapper - Nice class for changing the theme of a Context on the fly.

Space - Lightweight View which skips drawing. Great for any situation that might require a placeholder.

ValueAnimator.reverse() - I love this for canceling animations smoothly.