EditText控件的相关骚操作:动态清除内容、软键盘点击搜索

引言

  关于输入框EditText相信大家一定很熟悉,但你真的有够了解它吗?请试想一下,如何在打开界面时不自动呼出软键盘?如何在输入内容不为空时再显示按钮进行内容清除?如何在点击软键盘的搜索键后再进行搜索操作?


本期功能

  • 1、输入框不自动获取焦点并呼出软键盘。
  • 2、输入框可动态清除输入框内容。
  • 3、呼出软键盘点击“搜索键”后进行搜索操作。
EditText控件的相关骚操作:动态清除内容、软键盘点击搜索_第1张图片

用法

第一步:布局文件




    
    

        

        

        

        
    


第二步:在Activity中书写业务逻辑代码

public class Case65 extends AppCompatActivity {
    private EditText etSearch;
    private ImageView ivClear;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_case65);
        initView();
        doClean();
        doSearch();
    }

    private void initView() {
        etSearch = findViewById(R.id.search);
        ivClear = findViewById(R.id.ivClear);
    }

    //当用户输入框为空,不显示清除按钮;不空,则显示清除按钮并且可实现点击清除输入框内容的功能
    private void doClean() {
        etSearch.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) {

            }

            @Override
            public void afterTextChanged(Editable s) {
                if (s.toString().equals("")){
                    ivClear.setVisibility(View.GONE);
                }else {
                    ivClear.setVisibility(View.VISIBLE);
                    //点击清空内容
                    ivClear.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View v) {
                            etSearch.setText("");
                        }
                    });
                }
            }
        });
    }

    //点击软键盘搜索按钮执行搜索操作
    private void doSearch() {
        etSearch.setOnEditorActionListener(new TextView.OnEditorActionListener() {
            @Override
            public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
                if (actionId == EditorInfo.IME_ACTION_SEARCH){
                    Toast.makeText(getBaseContext(), "执行搜索操作", Toast.LENGTH_SHORT).show();
                    return true;
                }
                return false;
            }
        });
    }
}

大功告成!

EditText控件的相关骚操作:动态清除内容、软键盘点击搜索_第2张图片

你可能感兴趣的:(EditText控件的相关骚操作:动态清除内容、软键盘点击搜索)