Android自动完成绑定问题

时间:2010-08-10 10:48:05

标签: android

我正在开发一个Android Recipe程序,其中包含食谱配方数据库。我在其中创建了一个名为“recipe”的表,其中包含以下字段:

1 - _id(简称KEY_ID)
2 - 配方标题(简称KEY_TITLE)
3 - 服务数量(称为KEY_NOSERV)
4 - 成分(简称KEY_INGREDIENT)
5 - 程序(称为KEY_PROCEDURE)

我已成功实现了显示操作,即我已经完成了列表视图,其中显示了所有配方标题,当我点击标题时,它通过从数据库中提取数据向我显示剩余字段。在这种方法中,我可以轻松地绑定数据表单数据库。我用于此显示操作的数据绑定逻辑如下运行良好。

Cursor c = rDbHelper.fetchAllRecipes();
        startManagingCursor(c);

        String[] from = new String[] { RecipeDbAdapter.KEY_TITLE };
        int[] to = new int[] { R.id.text1 };

        SimpleCursorAdapter recps =
            new SimpleCursorAdapter(this, R.layout.recipe_row, c, from, to);

        setListAdapter(recps);

现在我正在使用AutoComplete Widget实现搜索操作。 AutoComplete应显示仅显示食谱标题。但在此我不知道如何绑定自动完成框中的数据。我尝试做同样的事情,就像我在显示操作中做的那样,但应用程序被强制关闭。我已经附加了xml和代码示例,如下所述。请告诉我如何在此操作中将数据绑定到AutoComplete Widget。

res / layout文件名:recipe_auto_list_item.xml

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/textautocomplete"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:padding="10dp"
    android:textSize="16sp"
    android:textColor="#000">
</TextView>

res / layout文件名:recipe_autocomplete.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="horizontal"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"
    android:padding="5dp">
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="RECIPE NAME:" />
    <AutoCompleteTextView android:id="@+id/autocomplete_recipe"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="5dp"/>
</LinearLayout>

我在搜索活动中使用的数据绑定逻辑如下:

super.onCreate(savedInstanceState);
setContentView(R.layout.recipe_autocomplete);

AutoCompleteTextView textView = (AutoCompleteTextView) findViewById(R.id.autocomplete_recipe);

Cursor c = rDbHelper.fetchAllRecipes();
        startManagingCursor(c);

        String[] from = new String[] { RecipeDbAdapter.KEY_TITLE };
        int[] to = new int[] { R.id.textautocomplete };

        SimpleCursorAdapter cur = new SimpleCursorAdapter(this, R.layout.recipe_auto_list_item, c, from, to);
textView.setAdapter(cur);

fetchAllRecipes()函数提取配方表的所有字段。从那里我只需要提取标题并在自动完成小部件中使用。

当我尝试启动搜索操作时,我的应用程序被强制关闭。请问我应该使用什么逻辑进行数据绑定。

1 个答案:

答案 0 :(得分:1)

为什么不尝试使用Search feature withing Android