2010-12-12 2 views
2

Я создал AutoCompleteTextView для поиска по списку наименований (полученных из sqlite db), и то, что я хочу сделать, когда пользователь нажимает на заголовок в раскрывающемся меню, вся информация из базы данных о его выборе появляется в текстовом представлении, созданном ниже AutoCompleteTextView.Android AutoCompleteTextView onClick проблема

Я довольно новичок в программировании, особенно для андроида, и я был бы очень признателен, если бы кто-нибудь мог объяснить мне, как именно использовать 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 и переопределить этот метод всегда возвращает правда.

ПРИМЕЧАНИЕ: Имейте в виду, что это может измениться в будущем, и оно может сломаться.

Смежные вопросы