2010-12-12 76 views
2

我创建了一个AutoCompleteTextView来搜索课程名称列表(从sqlite数据库中获得),我想要做的是,当用户从下拉菜单中点击标题时,数据库中关于他的选择的全部信息出现在AutoCompleteTextView下创建的文本视图中。Android AutoCompleteTextView onClick问题

我对编程相当新颖,特别是对于android,如果有人能解释我如何使用setOnItemClickListener来调用下面的TextView数据库中的实例,我将非常感激。

布局的代码(R.layout.main_courses)是

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:padding="5dp"> 
<AutoCompleteTextView 
android:id="@+id/autocomplete_course" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:hint="Search for a course"/> 
<TextView 
android:id="@+id/text" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_below="@id/autocomplete_course" 
    android:hint="Information about the course will appear here" /> 
</RelativeLayout> 

和我到目前为止已经写的AutoCompleteTextView代码:

protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.main_courses); 
    DataBase db = new DataBase(this.getApplicationContext()); 
db.openDataBase(); 
ArrayList<String> aCourses = db.getCoursesArr(); 
db.close(); 


AutoCompleteTextView search = (AutoCompleteTextView) findViewById(R.id.autocomplete_course); 
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.list_courses, aCourses); 
search.setAdapter(adapter); 
} 

回答

3

首先你应该尝试使用CursorAdapter而不是从中获取数组。检查this link欲知更多信息。

AutoCompleteTextView中有一种方法可以让您决定在显示下拉菜单setThreshold之前用户必须输入多少个字母。问题是它只允许> = 1的值。

如果检查this class src code,好消息是,通过setThreshold()设置的变量在此方法只用于:

public boolean enoughToFilter() { 
    return getText().length() >= mThreshold; 
} 

所以,第一件事我会尝试是扩大AutoCompleteTextView并覆盖方法总是返回真正。

注意:请记住,这可能会在将来发生变化,它可能会被打破。