Событие нажатия AutoCompleteTextView на Android - PullRequest
8 голосов
/ 08 августа 2010

Я успешно реализовал свой AutoCompleteTextView, основанный на запросе SQLite и помещенный в адаптер массива.Это все работает прекрасно, однако я не могу заставить работать мой onclickevent.

Я просто хочу создать намерение передать выбранное значение новому действию.Я знаю, как создать onclicklistener.Я просто не уверен, как применить его к раскрывающемуся списку AutoCompleteTextView.

Ответы [ 2 ]

14 голосов
/ 09 августа 2010

Nevermind. Я решил это. Я просто плохо выполнял. Приведенный ниже код автоматически завершает мое текстовое представление на основе простого оператора SELECT SQLite и выполняется, когда пользователь выбирает университет из раскрывающегося списка.

Событие onclick создает новое намерение и запускает новое действие, передавая выбор этому действию в намерении.

final AutoCompleteTextView textView = (AutoCompleteTextView) findViewById(R.id.ac_university);
String[] universities = myDbHelper.getAllUnis(db);

// Print out the values to the log
for(int i = 0; i < universities.length; i++)
{
    Log.i(this.toString(), universities[i]);
}

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.list_item, universities);
textView.setAdapter(adapter);

//textView.setOnItemSelectedListener(this);
textView.setOnItemClickListener(new OnItemClickListener() {

    @Override
    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                            long arg3) {

        Intent intent = new Intent(Main.this, Campus.class);
        Bundle bundle = new Bundle();

        bundle.putString("university_name", arg0.getItemAtPosition(arg2).toString());
        bundle.putLong("_id", arg3);
        intent.putExtras(bundle);
        startActivity(intent);
    }
0 голосов
/ 08 августа 2010

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

Вот пример ...

Форма активности отправки:

    lv.setOnItemClickListener(new OnItemClickListener()
    {
        public void onItemClick(AdapterView<?> parent, View v, int pos, long id) {
            ApplicationInfo x = appinstalled.get(pos);
            PackageInfo y = appinstall.get(pos);
            //Intent i = new Intent(InstalledPackages.this, Information.class);
            i = new Intent(InstalledPackages.this, Information.class);
            i.putExtra("i",x);
            i.putExtra("j", y);
            startActivity(i);
        }
    });
}

На принимающей стороне:

    super.onCreate(savedInstanceState);
    Intent myIntent = getIntent();
    ApplicationInfo i = (ApplicationInfo)myIntent.getParcelableExtra("i");
    PackageInfo j = (PackageInfo)myIntent.getParcelableExtra("j");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...