像在百度输入框中一样,输入几个字后,下面会列出相近的搜索项。Android可以利用AutoCompleteTextView来实现,实现方法如下:
第一步,布局文件:
<AutoCompleteTextView
android:id="@+id/autoCompleteChannelName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:completionHint="请选择营业厅"
android:completionThreshold="2" //表示输入两个字后开始找相匹配的项
android:ems="10" >
<requestFocus />
</AutoCompleteTextView>
第二步,activity后台实现:
//智能提示框内容
private String[] channelName = {"aa","bb","baa","aacd","aaadd"};
//下拉框中的内容对应的ID
private long [] channelIds={1,2,3,4,5};
//下拉框所需的适配器
private ArrayAdapter<String> autoAdapter;
//控件初始化:
autoCompleteTextView = (AutoCompleteTextView)findViewById(R.id.autoCompleteChannelName);
//初始化下拉框中的内容:
autoAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_dropdown_item_1line, channelName);
autoCompleteTextView.setAdapter(autoAdapter);
//绑定选择项的事件:
myOnItemSelectListen ml = new myOnItemSelectListen(this,autoAdapter);
autoCompleteTextView.setOnItemClickListener(ml);
class myOnItemSelectListen implements OnItemClickListener{
private ArrayAdapter<String> myArrayAdapter;
private Activity mcontext;
public myOnItemSelectListen(Activity c,ArrayAdapter<String> ad){
this.myArrayAdapter = ad;
this.mcontext = c;
}
public void onItemClick(AdapterView<?> parent, View v, int pos,long row) {
for(int i=0;i<channelIds.length;i++){
if (autoCompleteTextView.getText().toString().equals(channelName[i])) {
dt.setChannel_id(channelIds[i]);
break;
}
}
parent.setVisibility(View.VISIBLE);
}
}