You 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.

>         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);

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:49 pm, class_java <class_j...@yahoo.gr> wrote:
> 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
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Android Beginners" group.
To post to this group, send email to android-beginners@googlegroups.com
To unsubscribe from this group, send email to
android-beginners-unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-beginners?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to