Older platforms should ignore any attributes that didn't exist for them.

On Tue, Dec 15, 2009 at 10:20 PM, theSmith <[email protected]> wrote:

> @Diane
>
> My mistake, since I started developing when 1.6 was released I thought
> the search manager was the new QSB from 1.6
>
> @AJ
>
> My app is crashing too because of the QSR terms in the searchable.xml
> The problem then becomes how can you access them from 1.6+ without
> them being seen in 1.5?
>
> On Dec 8, 2:13 pm, AJ <[email protected]> wrote:
> > On Dec 7, 4:25 pm, Dianne Hackborn <[email protected]> wrote:> On Mon,
> Dec 7, 2009 at 1:20 PM, AJ <[email protected]> wrote:
> > > > 1) drawable verses the new drawable-* ... if I don't have an icon in
> > > > drawable.png will my application be icon-less in 1.5? Do I need to
> > > > copy one of the new icons in there? If so, which one?
> >
> > > If you want to run on pre-1.6 platforms, I would suggest putting your
> medium
> > > density bitmaps in drawable/* instead of drawable-mdpi/*.  1.6 and
> later
> > > will assume that these are medium density.
> >
> > Thank you.
> >
> > > > 2) search ... how does the "SEARCH" activity get raised for an
> > > > application on SDK 1.5 devices (which don't appear to have a hardware
> > > > search button.) Do I need to add a menu option and raise SEARCH as a
> > > > sub-activity? [Note: I am 100% confused by search button on all
> > > > android versions 'cos what I read says SDK 2.0 copes with virtual
> > > > buttons, yet those devices (in emulator) seem to have hardware ones.
> > > > What am I missing?]
> >
> > > Whether or not there is a search button is really a device thing, and
> not a
> > > platform version thing.  For example, the G1 has a search key on its
> hard
> > > keyboard, and you can assume there will be devices running 2.0 and
> later
> > > that don't have a search key.  If search is important for your app, you
> will
> > > want to have another mechanism to get to it -- often a menu item.
> >
> > Thanks, again, that helped a lot. I've added a menu option (although
> > I'd love to know how to hide that if I could detect a hardware
> > button.)
> >
> > My remaining problem is the search suggestion provider code (which I
> > took from a 2.0 sample) will compile on SDK 1.5 (I've built a SDK
> > project to ensure little is hidden by backwards compatibility.)
> > Anyway, things seem good unless I actually return search suggestions
> > via a
> >
> >    /**
> >      * The columns we'll include in our search suggestions.  There are
> > others that could be used
> >      * to further customize the suggestions, see the docs in {...@link
> > SearchManager} for the details
> >      * on additional columns that are supported.
> >      */
> >     private static final String[] COLUMNS = {
> >             "_id",  // must include this column
> >             SearchManager.SUGGEST_COLUMN_TEXT_1,
> >             SearchManager.SUGGEST_COLUMN_INTENT_DATA,
> >             };
> >
> > The generation is here:
> >
> >    MatrixCursor cursor = new MatrixCursor(COLUMNS, 0);
> >         for (String ingredient : matching_ingredients) {
> >            cursor.addRow(new String[] {
> >                         ingredient,           // _id
> >                         ingredient,           // text1
> >                         ingredient           // intent_data (included
> when clicking
> > on item)
> >         });
> >         }
> >
> > I've tried reading SearchManager documentation, but cannot seem to
> > track down what columns it is expecting (or not expecting) for SDK 1.5
> > that causes it to try to get a long when I don't have one.
> >
> > Unless I comment that out, I get:
> >
> > 12-08 12:02:21.263: ERROR/AndroidRuntime(808):
> > java.lang.NumberFormatException: Achee
> > 12-08 12:02:21.263: ERROR/AndroidRuntime(808):     at
> > java.lang.Long.parse(Long.java:368)
> > 12-08 12:02:21.263: ERROR/AndroidRuntime(808):     at
> > java.lang.Long.parseLong(Long.java:358)
> > 12-08 12:02:21.263: ERROR/AndroidRuntime(808):     at
> > java.lang.Long.parseLong(Long.java:323)
> > 12-08 12:02:21.263: ERROR/AndroidRuntime(808):     at
> > java.lang.Long.valueOf(Long.java:570)
> > 12-08 12:02:21.263: ERROR/AndroidRuntime(808):     at
> > android.database.MatrixCursor.getLong(MatrixCursor.java:245)
> > 12-08 12:02:21.263: ERROR/AndroidRuntime(808):     at
> > android.database.CursorWrapper.getLong(CursorWrapper.java:127)
> > 12-08 12:02:21.263: ERROR/AndroidRuntime(808):     at
> > android.widget.CursorAdapter.getItemId(CursorAdapter.java:156)
> > 12-08 12:02:21.263: ERROR/AndroidRuntime(808):     at
> > android.widget.AutoCompleteTextView.buildDropDown
> > (AutoCompleteTextView.java:900)
> > 12-08 12:02:21.263: ERROR/AndroidRuntime(808):     at
> > android.widget.AutoCompleteTextView.showDropDown
> > (AutoCompleteTextView.java:843)
> > 12-08 12:02:21.263: ERROR/AndroidRuntime(808):     at
> > android.widget.AutoCompleteTextView.onFilterComplete
> > (AutoCompleteTextView.java:749)
> > 12-08 12:02:21.263: ERROR/AndroidRuntime(808):     at
> > android.widget.Filter$ResultsHandler.handleMessage(Filter.java:266)
> > 12-08 12:02:21.263: ERROR/AndroidRuntime(808):     at
> > android.os.Handler.dispatchMessage(Handler.java:99)
> > 12-08 12:02:21.263: ERROR/AndroidRuntime(808):     at
> > android.os.Looper.loop(Looper.java:123)
> > 12-08 12:02:21.263: ERROR/AndroidRuntime(808):     at
> > android.app.ActivityThread.main(ActivityThread.java:3948)
> > 12-08 12:02:21.263: ERROR/AndroidRuntime(808):     at
> > java.lang.reflect.Method.invokeNative(Native Method)
> > 12-08 12:02:21.263: ERROR/AndroidRuntime(808):     at
> > java.lang.reflect.Method.invoke(Method.java:521)
> > 12-08 12:02:21.263: ERROR/AndroidRuntime(808):     at
> > com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run
> > (ZygoteInit.java:782)
> > 12-08 12:02:21.263: ERROR/AndroidRuntime(808):     at
> > com.android.internal.os.ZygoteInit.main(ZygoteInit.java:540)
> > 12-08 12:02:21.263: ERROR/AndroidRuntime(808):     at
> > dalvik.system.NativeStart.main(Native Method)
> >
> > Any pointers on how I'd track down the cause of this problem?
>
> --
> You received this message because you are subscribed to the Google
> Groups "Android Developers" group.
> To post to this group, send email to [email protected]
> To unsubscribe from this group, send email to
> [email protected]<android-developers%[email protected]>
> For more options, visit this group at
> http://groups.google.com/group/android-developers?hl=en
>



-- 
Dianne Hackborn
Android framework engineer
[email protected]

Note: please don't send private questions to me, as I don't have time to
provide private support, and so won't reply to such e-mails.  All such
questions should be posted on public forums, where I and others can see and
answer them.

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to