现在的位置: 首页 > 综合 > 正文

Android autocompleteTextview自动补齐

2013年04月04日 ⁄ 综合 ⁄ 共 1652字 ⁄ 字号 评论关闭

        像在百度输入框中一样,输入几个字后,下面会列出相近的搜索项。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);
        }
  }

抱歉!评论已关闭.