Android AutoCompleteTextView onClick проблема - PullRequest
2 голосов
/ 12 декабря 2010

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

Я довольно новичок в программировании, особенно для 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);
}

1 Ответ

3 голосов
/ 12 декабря 2010

Прежде всего вы должны попробовать использовать CursorAdapter вместо получения массива из него.Проверьте эту ссылку для получения дополнительной информации.

В AutoCompleteTextView существует метод, позволяющий вам решить, сколько букв пользователь должен набрать, прежде чем будет отображаться раскрывающийся список, setThreshold .Проблема в том, что он допускает только> = 1. значения.

Если вы проверите этот код источника класса , хорошая новость заключается в том, что переменная, установленная setThreshold(), используется только в этом методе.:

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

Итак, первое, что я бы попробовал, это расширить AutoCompleteTextView и переопределить этот метод, чтобы всегда возвращать true.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...