Problem with AutoCompleteTextView and SimpleCursorAdapter

by class_java » Tue, 03 Mar 2009 06:19:52 GMT


Sponsored Links
 Hi All,

I have a AutoCompleteTextView and I wont in the drop down list that
appears while typing to contain data from a database through
SimpleCursorAdapter. The drop down list appears, but there is not text
in it. When I click in the drop down item seems to work fine, the Text
is correctly shown in the AutoCompleteTextView. Please help...

Code samples:
***************************************************************************************************************
Activity:
 final AutoCompleteTextView editTxt = (AutoCompleteTextView)
findViewById(R.id.foodedittext);

        mDbHelper = new DbHelper(this);

        Cursor cursor = mDbHelper.fetchAll();
        startManagingCursor(cursor);
        int[] to = new int[]{android.R.layout.select_dialog_item};
        SimpleCursorAdapter cursAdapt = new SimpleCursorAdapter
(this,android.R.layout.simple_dropdown_item_1line,cursor,new String[]
{DbHelper.FOOD_NAME},to);
        cursAdapt.setCursorToStringConverter(new CursorConverter());
        editTxt.setAdapter(cursAdapt);
**********************************************************************
auto_complete.xml:

<?xml version="1.0" encoding="utf-8"?>

<TextView  xmlns:android=" http://schemas.android.com/apk/res/android" ;
        android:id="@+id/auto_complete"
    android:layout_height="wrap_content"
    android:layout_width="wrap_content"
 />

*************************************************************************
public class CursorConverter implements CursorToStringConverter{

        @Override
        public CharSequence convertToString(Cursor cursor) {
         String a = cursor.getString(1);
         return a;
        }

}
****************************************************************************

Thanks in advance...
          Evelina




--~--~---------~--~----~------------~-------~--~----~



Problem with AutoCompleteTextView and SimpleCursorAdapter

by Will » Wed, 04 Mar 2009 02:03:05 GMT


 I haven't done one of these with a SimpleCurosrAdapter, but I've
worked through it with a Cursor/CursorAdapter.  I just uploaded to the
Developers group what I think is the minimum code for an AutoComplete
with a Cursor/CursorAdapter.

It's here:  


Sponsored Links


Problem with AutoCompleteTextView and SimpleCursorAdapter

by Tseng » Wed, 04 Mar 2009 06:24:21 GMT


 ou don't have to create your own XML file if you're just want to
display a one-liner dropdown menu. Instead better to use the already
defined one in the android resources. Basically you can leave the
auto_complete.xml, as it's not used anyways in your code (unless you
want to design your own dropdown list views).

Basically there are two reasons:
1. You haven't set the color states correctly so the text color =
background color
or
2. You have selected a wrong id in the "to" parameters

In your example, the latter seems to be the case.


you're using an layout id as "to". This is wrong. You have to use the
ID of the textfield in which your data belongs.

For example you have to data fields in your cursor, lets say

new String[] { DbHelper.FOOD_NAME, DbHelper.FOOD_PRICE }

Now if you have an layout file, with 2 TextView elements called
foodname and foodprice, you'd have to make the "to" part as follows
new int[] {R.id.foodname, R.id.foodid} in exactly this order. First
element of from (DbHelper.FOOD_NAME) will be placed in the view with
the first ID from "to" (in this case: R.id.foodname).

Since you're using the predefined android layout for the dropdown list
(android.R.layout.simple_dropdown_item_1line), the (only) textview
item is called android.R.id.text1.

So changing
int[] to = new int[]{android.R.layout.select_dialog_item};
SimpleCursorAdapter cursAdapt = new SimpleCursorAdapter
(this,android.R.layout.simple_dropdown_item_1line,cursor,new String[]
{DbHelper.FOOD_NAME},to);

to

int[] to = new int[]{android.R.id.text1};
SimpleCursorAdapter cursAdapt = new SimpleCursorAdapter
(this,android.R.layout.simple_dropdown_item_1line,cursor,new String[]
{DbHelper.FOOD_NAME},to);

should do the trick. You HAVE to use android.R.id.text1, because this
is the id which was set in android sdks \res\layout
\simple_dropdown_item_1line.xml file.

This is btw the case for all default android layout files. They have
no fixed names, instead it's always android.R.id.text1 to
android.R.id.text3 or android.R.id.button1 to android.R.id.button3 in
case of buttons (i.e. in default Dialog layouts)


On Mar 2, 10:49pm, class_java <class_j...@yahoo.gr> wrote:
--~--~---------~--~----~------------~-------~--~----~



Other Threads

1. Finish sub activity Overlapping (Urgent)

hello

I am trying to finish sub Activities but they are getting overlapping

help me out please

super.onActivityResult(requestCode, resultCode, data, extras);
 
this.setResult(InitializeConfiguration.SUBACTIVITY_RESULTCODE_CHAINCLOSE);
                this.finish();


--~--~---------~--~----~------------~-------~--~----~

2. Notification trying to be immortal - how to kill it

(I posted this on the challenge group accidentally, but this is a dev
question)
Hi, my local service occasionally sends out notifications through the
notification manager.

Clicking on the notification launches an activity. From within the
activity, I call bindService and then call a service-api to do
NotificationManager.cancel(id);

This works most of the time.
However, some other times, the notification refuses to be cancelled
and stays on top of the screen.
I have trace code that confirms that the service has called cancel for
the correct id.

Does anyone know how to fix or workaround the problem ?

--~--~---------~--~----~------------~-------~--~----~

3. How do i schedule the alarm at boot up?

4. Cannot get Linkify.addLinks() to work

5. Running the same activity from an activity?

6. trouble with AIDL parser

7. Cursor c = this.getContentResolver().query( gets nullpointer exception when code is moved