AutoCompletmentTextView(用在搜索框)常见方法的介绍
2016-05-12 17:44
387 查看
第一步:在xml引入AutoComplementTextView
<AutoCompleteTextView android:completionThreshold="1" android:layout_width="match_parent" android:layout_height="40dp" android:id="@+id/main_search_autoCompleteTextView" android:background="@drawable/main_search_bar" android:singleLine="true"
<!-- 设置虚拟键盘上的“完成”、“下一步属性”--> android:imeOptions="actionDone"
android:layout_marginRight="10dp" android:layout_centerVertical="true" android:textColor="@color/white" android:hint="請輸入關鍵字進行搜索"
<!--AutoCompleteTextView里面内容与边框的距离 --> android:padding="10dp" <!-- 在AutoCompleteTextView的起始位置加一张图片(一般是一种搜索标志的图片),
好处:焦点的起始位置在该图片的后面而不是和该图片部分重叠!!!--> android:drawableLeft="@drawable/main_search_search" /><!--不重要的imageButton,用来删除AutoCompleteTextView的输入内容用的-->
<ImageButton android:id="@+id/hidenHistory_bt" android:layout_width="wrap_content" android:layout_height="36dp" android:layout_alignRight="@id/main_search_autoCompleteTextView" android:layout_marginRight="2dp" android:layout_marginTop="6dp" android:background="@null" android:layout_centerVertical="true" android:paddingLeft="12dp" android:paddingRight="8dp" android:src="@drawable/main_search_delete_error" />一下都是java代码:第二步:相关内容以dialog方式提示
//动态搜索栏的adapter配置信息(就是自动提示与输入关键字相关的内容) this.historyAdapter = new ArrayAdapter<String>(this, R.layout.list_detail_mainseach, R.id.textView, new String{"qqq","www","rrr"}); main_search_autoCompleteTextView.setAdapter(this.historyAdapter);
第三步:监听“输入内容的改变【比如增加关键字】”
main_search_autoCompleteTextView.addTextChangedListener(new TextWatcher() {@Overridepublic void beforeTextChanged(CharSequence s, int start, int count, int after) {}@Overridepublic void onTextChanged(CharSequence s, int start, int before, int count) {keyword = main_search_autoCompleteTextView.getText().toString().trim();// autoCompleteTextView.dismissDropDown();if (!TextUtils.isEmpty(keyword)) {Toast.makeText(MainSearchActivity.this, ":" + keyword, Toast.LENGTH_SHORT).show();} else {Toast.makeText(MainSearchActivity.this, "输入为空", Toast.LENGTH_SHORT).show();}}@Overridepublic void afterTextChanged(Editable s) {}});
第四步:监听“相关内容的提示项”【就是你监听“第二步中产生的dialog的每一项提示”,可以用来保存为历史搜索记录】
main_search_autoCompleteTextView.setOnItemClickListener(new AdapterView.OnItemClickListener() {public void onItemClick(AdapterView<?> parent, View view, int position, long rowId) {String selection = (String) parent.getItemAtPosition(position);saveHistory();main_search_autoCompleteTextView.setText(selection);//set the focus positionmain_search_autoCompleteTextView.setSelection((main_search_autoCompleteTextView.getText().toString()).length());}});第五步:监听虚拟键盘上的“完成”按钮(当按下完成按钮时可以将该关键字保存进历史记录)
main_search_autoCompleteTextView.setOnEditorActionListener(new TextView.OnEditorActionListener() {@Overridepublic boolean onEditorAction(TextView v, int actionId, KeyEvent event) {if (actionId == EditorInfo.IME_ACTION_DONE) {keyword = main_search_autoCompleteTextView.getText().toString().trim();main_search_autoCompleteTextView.dismissDropDown();KeyBoardUtil.hideSoftKeyboard(MainSearchActivity.this);if (!TextUtils.isEmpty(keyword)) {Toast.makeText(MainSearchActivity.this, ":" + keyword, Toast.LENGTH_SHORT).show();saveHistory();} else {Toast.makeText(MainSearchActivity.this, "输入为空!", Toast.LENGTH_SHORT).show();}return true;}return false;}});
相关文章推荐
- 余数和商 一位数乘以一位数
- Dockerfile详解
- SQL导出excel
- powerdesigner逆向工程,从数据库导出PDM
- JAVA内存模型
- 邮件中继如何解决邮件退信问题
- Android 热补丁动态修复框架小结
- Java 8 新特性:Java 类库的新特性之日期时间API (Date/Time API )
- C语言文件读写操作总结
- Autorelease自动释放池
- Spring Boot 入门学习(1)
- spark-shell出错_解决方法
- GitHub 优秀的 Android 开源项目
- UIImagePickerController的简单应用
- Mac OS X平台上Java环境的配置
- 微信开发_接收消息,回复消息(3)
- shell浅谈之六字符串和文件处理
- 【JavaScript】 判断空对象区别于null、undefined
- String、动态规划——正则表达式匹配
- ListView