"Reflection" is an old computer language term. Think of it as referring to the ability of a language to see itself, as in a mirror. Languages such as C and C++ don't have it. Java, Lisp, and many scripting languages do.
On Feb 25, 8:46 pm, "Nick Owens" <nicow...@gmail.com> wrote: > All: > > So I realized my date/time is already formatted by time zone and re-adding > the default time zone was subtracting the time zone offset again from the > time! So, new code to replace the formatting function is below: > > Date date = df.parse(dateTime); > > if (sdk < 3) { > > finalDateTime = df.format(date); > > } else { > > finalDateTime = DateUtils.getRelativeDateTimeString(this, > date.getTime(), dateMin, dateMax, dateFlags).toString(); > > } > > So, why is it called "reflection" anyways? Is it like "reflecting" on all > those previous SDK versions and thinking about the special times we had w/ > them? > > Thanks, > Nick Owens > VP, ThreeClix > Office: (904) 429-7039 > Mobile: (847) 565-9392 > After Hours: (904) 540-5830 > > > > -----Original Message----- > From: Nick Owens [mailto:nicow...@gmail.com] > Sent: Thursday, February 25, 2010 5:38 PM > To: 'android-developers@googlegroups.com' > Subject: RE: [android-developers] Re: FormatDateTime > > Mark (et. al. interested parties): > > Thank you for the example on reflection. I got it working and thought it > might be prudent to share my results w/ the world so the completed code is > below. For the record, this date value (as a string) is being retrieved > from a SQLite database and the function formatDateTime() is used in a custom > adapter for display of the date for each record in a ListView. > > This compiles in Eclipse using Android 1.5. This allows me to set a minimum > sdk version of 2, while still utilizing this really nifty date display > function. > > --------------------------------------------------------------------------- - > ------------ > public class ResourcesList extends ListActivity { > > ... > > int sdk = new Integer(Build.VERSION.SDK).intValue(); > > private static final long dateMin = 60000; > private static final long dateMax = (86400000 * 2); > private static final int dateFlags = 0; > > ... > > public String formatDateTime(String dateTime) { > > if (dateTime == null) { > > return "Never"; > > } else { > > String finalDateTime; > > DateFormat df = new SimpleDateFormat("yyyy-MM-dd > HH:mm:ss"); > > try { > > Date date = df.parse(dateTime); > > if (sdk < 3) { > > finalDateTime = df.format(date); > > } else { > > long when = date.getTime(); > > finalDateTime = > DateUtils.getRelativeDateTimeString(this, (when + > TimeZone.getDefault().getOffset(when)), dateMin, dateMax, > dateFlags).toString(); > > } > > } catch (Exception e) { > > finalDateTime = "Unknown"; > > } > > return finalDateTime; > > } > > } > > ... > > } > > Thanks, > Nick Owens > VP, ThreeClix > Office: (904) 429-7039 > Mobile: (847) 565-9392 > After Hours: (904) 540-5830 > > -----Original Message----- > From: android-developers@googlegroups.com > [mailto:android-develop...@googlegroups.com] On Behalf Of Mark Murphy > Sent: Thursday, February 25, 2010 4:23 PM > To: android-developers@googlegroups.com > Subject: Re: [android-developers] Re: FormatDateTime > > Nick Owens wrote: > > On another note, is it possible to provide a conditional instruction for > > formatting date/time based on the user's Android package: > > > if (package > 1.1) { > > > //cooler date time format > > > } else { > > > //regular date time format > > > } > > Yes, either via reflection or via conditional class loading. > > > Let me guess? It is technically possible, but not in Eclipse since > Eclipse > > won't even let it compile w/ a function that doesn't compile. > > No, it should work fine. However, you need to compile for the higher > version. > > > Or can I > > build it for Android 1.2 but allow users of 1.1 to download it by > specifying > > a different min-SDK level than it is built for? > > Dunno. What's Android 1.2? :-) > > > If so, can I write a > > conditional instruction based on the device's SDK level? > > Yes, either via reflection or via conditional class loading. > > This was discussed here: > > http://stackoverflow.com/questions/2312321/how-to-use-contacts-api-fo... > id-1-x-and-2-x-simultaneously > > and here: > > http://stackoverflow.com/questions/2044985/android-contactscontract-a... > ding-across-multiple-sdk-versions > > Some sample projects are here: > > http://github.com/commonsguy/cw-advandroid/tree/master/Contacts/Pick/http://github.com/commonsguy/cw-advandroid/tree/master/Contacts/Spinn... > > First one uses reflection, second one uses conditional class loading. > > Here are two more samples: > > http://github.com/commonsguy/cw-android/tree/master/APIVersions/ > > -- > Mark Murphy (a Commons > Guy)http://commonsware.com|http://twitter.com/commonsguy > > Warescription: Three Android Books, Plus Updates, One Low Price! > > -- > You received this message because you are subscribed to the Google > Groups "Android Developers" group. > To post to this group, send email to android-developers@googlegroups.com > To unsubscribe from this group, send email to > android-developers+unsubscr...@googlegroups.com > For more options, visit this group > athttp://groups.google.com/group/android-developers?hl=en -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en