首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >从SQLite数据库加载的AutocompleteText

从SQLite数据库加载的AutocompleteText
EN

Stack Overflow用户
提问于 2018-01-12 18:47:43
回答 1查看 32关注 0票数 1

我已经从我的数据库中为一项研究创建了一个自动补全文本,所以我的SQLite create table语句是:

代码语言:javascript
代码运行次数:0
运行
复制
private static final String CREATE_TABLE_QUESTION =
        "CREATE TABLE  " + TABLE_QUESTION + "("
        + KEY_ID_QUESTION + " INTEGER PRIMARY KEY autoincrement NOT NULL, "
        + KEY_QUESTION + " TEXT, "
        + KEY_PROFIL_CIBLE + " TEXT, "
        + KEY_PROFIL_WAITEDANSWER + " TEXT, "
        + KEY_REGLE + " TEXT, "
        + KEY_PLANACT + " TEXT, "
        + KEY_THEME + " TEXT"
        + ")";

我还创建了一个在我的modelhelper中返回数组列表的方法;

代码语言:javascript
代码运行次数:0
运行
复制
public ArrayList getQuestionForSearch() {
    ArrayList lst = new ArrayList();
    int zise = lst.size();
    Random rand = new Random();
    SQLiteDatabase db = this.getReadableDatabase();

    // Cursor c = db.rawQuery(" SELECT  DISTINCT " + KEY_QUESTION + " from " + TABLE_QUESTION+ " where " +KEY_QUESTION+ " LIKE '%" +search+ "%'" , null);
    Cursor c = db.rawQuery(" SELECT " + KEY_QUESTION + " from " + TABLE_QUESTION, null);

    if (c.moveToFirst()) {
        while (c.isAfterLast() == false) {
            String t1 = c.getString(c.getColumnIndex(KEY_QUESTION));
            lst.add(t1);
            c.moveToNext();
        }
    }
    return lst;
}

在我的活动中,我在.xlm文件中添加了一个自动完成文本:

代码语言:javascript
代码运行次数:0
运行
复制
<AutoCompleteTextView xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/txtcomplete"
        android:layout_width="wrap_content"
        android:hint="Tapez votre recherche ici"
        android:layout_height="wrap_content"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        tools:layout_editor_absoluteY="0dp"
        tools:ignore="MissingConstraints" />

在我的.java类中,我创建了列表和一个适配器:

代码语言:javascript
代码运行次数:0
运行
复制
AutoCompleteTextView txt = (AutoCompleteTextView)findViewById(R.id.txtcomplete);

ModelHelper md = new ModelHelper(this);

String search= txt.getText().toString();
//getting list from the modelhelper
ArrayList<String> questions= md.getQuestionForSearch();
//arrayadapter
ArrayAdapter<String> myadap =   new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1);
//set the adapter to the autocomplete text
txt.setAdapter(myadap);

我验证了许多教程,它是这样工作的,但对我来说不一样,编译时没有错误,而在自动完成文本中输入什么都没有发生。

EN

回答 1

Stack Overflow用户

发布于 2018-01-12 18:59:07

我找到了,问题出在适配器上,我忘记了适配器线路中的问题。

代码语言:javascript
代码运行次数:0
运行
复制
ArrayAdapter<String> myadap =   new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1);

通过

代码语言:javascript
代码运行次数:0
运行
复制
ArrayAdapter<String> myadap =   new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,question);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48224647

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档