在使用輸入框的時候,常常需要在輸入框后帶有一鍵清除輸入內(nèi)容的按鈕。采用自定義View的方式是復(fù)用性較高的方法。另一方面也可以采用控件“控件+監(jiān)聽”的較為簡單的方法來實現(xiàn)。
成都創(chuàng)新互聯(lián)堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:做網(wǎng)站、成都網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的道外網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
布局文件:
主要代碼:
tvCloseUser = (TextView) findViewById(R.id.closeUser);//清除按鈕,使用TextView tvCloseUser.setVisibility(View.INVISIBLE); mEtUserName = (EditText) findViewById(R.id.etUser);//文本框 //監(jiān)聽文本變化 mEtUserName.addTextChangedListener(new TextWatcher() { @Override public void onTextChanged(CharSequence s, int start, int before, int count) { if (s.length() > 0){ tvCloseUser.setVisibility(View.VISIBLE); }else{ tvCloseUser.setVisibility(View.GONE); } } }); //點擊清除文本 tvCloseUser.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { mEtUserName.setText(""); } }); //監(jiān)聽焦點變化,沒有焦點則清除按鈕不可見 mEtUserName.setOnFocusChangeListener(new View.OnFocusChangeListener() { @Override public void onFocusChange(View v, boolean hasFocus) { if (hasFocus && mEtUserName.getText().length() > 0){ tvCloseUser.setVisibility(View.VISIBLE); }else { tvCloseUser.setVisibility(View.GONE); } } });