Android autocompleteTextview自动补齐

        像在百度输入框中一样,输入几个字后,下面会列出相近的搜索项。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);
        }
  }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值