我有AutoCompleteTextView并为它设置onItemSelectedListener,这不起作用.你知道这是什么问题吗?这是我的活动,如果需要,我还可以提供main.xml文件
package com.chidem;
import android.app.Activity;
import android.app.AlertDialog;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
public class ChidemActivity extends Activity implements OnItemSelectedListener{
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
String hop[]=new String[]{
"Karen","Mika","Gevor"
};
AutoCompleteTextView searchHotels = (AutoCompleteTextView) findViewById(R.id.autoSearch);
searchHotels.setOnItemSelectedListener(this);
ArrayAdapter<String> adapter1 = new ArrayAdapter<String>( this, R.layout.list_item, hop);
searchHotels.setAdapter(adapter1);
}
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
Log.d("autocomplete", "itemselected");
} …Run Code Online (Sandbox Code Playgroud) 我有一个附加到AutoCompleteTextView(textView)组件的ArrayAdapter(myAdapter).
一旦用户按下一个字符,我想用包含该字符的项目填充AutoCompleteTextView的下拉列表.
我使用AsyncTask(使用Web服务)检索项目.
我调用myAdapter.add(item)但下拉列表为空.
我在每次添加后添加了一个调用myAdapter.getCount(),每次都显示为零.调用notifyDataSetChanged()没有帮助.
我甚至试图添加简单的String对象而不是我的自定义对象,但无济于事.
我究竟做错了什么?
编辑:我改变了代码,因为miette建议如下,但仍无济于事.
通常,我所做的是在自动完成文本视图中更改文本后,我调用一个新的AsyncTask并将输入的文本和Handler传递给它(请参阅afterTextChanged()).该任务检索与文本相关的对象,一旦完成Handler的handleMessage()被调用.在handleMessage()中,我尝试填充适配器的对象.但仍然适配器的下拉列表结束为空.
这是我的代码:
public class AddStockView extends Activity
implements OnClickListener, OnItemClickListener, TextWatcher {
ArrayAdapter<Stock> adapter;
AutoCompleteTextView textView;
Vector<Stock> stocks;
public AddStockView() {
// TODO Auto-generated constructor stub
stocks = new Vector<Stock>();
}
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.add_stock_view);
findViewById(R.id.abort_button).setOnClickListener(this);
adapter = new ArrayAdapter<Stock>(this,
android.R.layout.simple_dropdown_item_1line, stocks);
//adapter.setNotifyOnChange(true);
textView = (AutoCompleteTextView)
findViewById(R.id.search_edit_text);
textView.setAdapter(adapter);
textView.setOnItemClickListener(this);
textView.addTextChangedListener(this);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId())
{
case R.id.abort_button: …Run Code Online (Sandbox Code Playgroud)