您的位置:首页 > 其它

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;}});
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: