AutoCompletmentTextView(用在搜索框)常见方法的介绍

第一步:在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() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {


            }

            @Override
            public 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();
                }
            }

            @Override
            public 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 position
        main_search_autoCompleteTextView.setSelection((main_search_autoCompleteTextView.getText().toString()).length());
    }
});
第五步:监听虚拟键盘上的“完成”按钮(当按下完成按钮时可以将该关键字保存进历史记录)
main_search_autoCompleteTextView.setOnEditorActionListener(new TextView.OnEditorActionListener() {


    @Override
    public 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;
    }
});


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值