Roh*_*mar 4 search android dialog
我有一个警告对话框,列出了大约100个城市.有没有办法在其中搜索?或者自动完成?

我想添加一个文本框,根据我输入的内容过滤列表.
编辑:我很抱歉.我的意思是我想根据我在文本框中输入的内容过滤上面的列表.例如,如果我输入'D',我应该只得到达卡..
好吧,我终于设法使用自定义Dialog.
citylistview.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:id="@+id/LinearLayout01"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="fill_parent"
android:layout_width="200dip"
android:orientation="vertical"
android:gravity="center">
<EditText android:id="@+id/EditBox"
android:maxLines="1"
android:layout_height="wrap_content"
android:layout_width="180dip"
android:gravity="left">
</EditText>
<ListView android:id="@+id/List"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:choiceMode="singleChoice">
</ListView>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
CityListDialog.java
public class CityListDialog extends Dialog implements OnClickListener {
private ListView list;
private EditText filterText = null;
ArrayAdapter<String> adapter = null;
private static final String TAG = "CityList";
public CityListDialog(Context context, String[] cityList) {
super(context);
/** Design the dialog in main.xml file */
setContentView(R.layout.citylistview);
this.setTitle("Select City");
filterText = (EditText) findViewById(R.id.EditBox);
filterText.addTextChangedListener(filterTextWatcher);
list = (ListView) findViewById(R.id.List);
adapter = new ArrayAdapter<String>(context, android.R.layout.simple_list_item_1, cityList);
list.setAdapter(adapter);
list.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> a, View v, int position, long id) {
Log.d(TAG, "Selected Item is = "+list.getItemAtPosition(position));
}
});
}
@Override
public void onClick(View v) {
}
private TextWatcher filterTextWatcher = new TextWatcher() {
public void afterTextChanged(Editable s) {
}
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}
public void onTextChanged(CharSequence s, int start, int before,
int count) {
adapter.getFilter().filter(s);
}
};
@Override
public void onStop(){
filterText.removeTextChangedListener(filterTextWatcher);
}}
Run Code Online (Sandbox Code Playgroud)
这是我调用对话框时得到的结果.感谢大家.