2010-12-12 111 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並覆蓋方法總是返回真正。

注意:請記住,這可能會在將來發生變化,它可能會被打破。