a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 系統(tǒng) > Android > 正文

Android中多個EditText輸入效果的解決方式

2019-10-21 21:26:00
字體:
供稿:網(wǎng)友

前言

在開發(fā)中,我們常常遇到這種情況

Android,EditText,輸入效果

我們往往需要的是下面這種效果

Android,EditText,輸入效果

但是如果把這些實現(xiàn)的代碼寫在Activity中會比較麻煩,影響代碼美觀

解決方法

于是就有了下面這個輔助類,禁用了按鈕的點擊事件和按鈕的漸變色,可同時添加一個或者多個EditText

/** * 文本輸入輔助類,通過管理多個TextView或者EditText輸入是否為空來啟用或者禁用按鈕的點擊事件 */public final class TextInputHelper implements TextWatcher { private View mMainView;//操作按鈕的View private List<TextView> mViewSet;//TextView集合,子類也可以(EditText、TextView、Button) private boolean isAlpha;//是否設(shè)置透明度 public TextInputHelper(View view) {  this(view, true); } /**  * 構(gòu)造函數(shù)  *  * @param view    跟隨EditText或者TextView輸入為空來判斷啟動或者禁用這個View  * @param alpha    是否需要設(shè)置透明度  */ public TextInputHelper(View view, boolean alpha) {  if (view == null) throw new IllegalArgumentException("The view is empty");  mMainView = view;  isAlpha = alpha; } /**  * 添加EditText或者TextView監(jiān)聽  *  * @param views  傳入單個或者多個EditText或者TextView對象  */ public void addViews(TextView... views) {  if (views == null) return;  if (mViewSet == null) {   mViewSet = new ArrayList<>(views.length - 1);  }  for (TextView view : views) {   view.addTextChangedListener(this);   mViewSet.add(view);  }  afterTextChanged(null); } /**  * 移除EditText監(jiān)聽,避免內(nèi)存泄露  */ public void removeViews() {  if (mViewSet == null) return;  for (TextView view : mViewSet) {   view.removeTextChangedListener(this);  }  mViewSet.clear();  mViewSet = null; } // 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 synchronized void afterTextChanged(Editable s) {  if (mViewSet == null) return;  for (TextView view : mViewSet) {   if ("".equals(view.getText().toString())) {    setEnabled(false);    return;   }  }  setEnabled(true); } /**  * 設(shè)置View的事件  *  * @param enabled    啟用或者禁用View的事件  */ public void setEnabled(boolean enabled) {  if (enabled == mMainView.isEnabled()) return;  if (enabled) {   //啟用View的事件   mMainView.setEnabled(true);   if (isAlpha) {    //設(shè)置不透明    mMainView.setAlpha(1f);   }  }else {   //禁用View的事件   mMainView.setEnabled(false);   if (isAlpha) {    //設(shè)置半透明    mMainView.setAlpha(0.5f);   }  } }}

在Activity創(chuàng)建時添加監(jiān)聽

private TextInputHelper mInputHelper;@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //創(chuàng)建一個輔助類,傳入按鈕操作View mInputHelper = new TextInputHelper(mButton); //可添加一個或者多個EditText,當(dāng)然也可以添加TextView mInputHelper.addViews(mEditText1, mEditText2, mEditText3);}

在Activity銷毀時移除監(jiān)聽(避免內(nèi)存泄露)

@Overrideprotected void onDestroy() { super.onDestroy(); //移除引用,避免內(nèi)存泄露 mInputHelper.removeViews();}

需要注意的是這里不單單只是可以添加EditText,還可以添加TextView,因為EditText是TextView的子類,最后要是覺得好用記得點個贊。

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對VEVB武林網(wǎng)的支持。


注:相關(guān)教程知識閱讀請移步到Android開發(fā)頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 成人久久久 | 亚洲国产一区二区三区在线观看 | 一区二区三区四区精品 | 可以免费看的av | 中文字幕日韩一区二区不卡 | 网站av| 日韩一区二区三免费高清在线观看 | 久久国产精品99久久久久久牛牛 | 国产高清视频 | 久久久久久久一区 | 久久久久一区二区三区 | 成人黄视频在线观看 | 久久精品视频偷拍 | 欧洲精品一区二区 | 正在播放一区 | 国产精品国产精品国产专区不片 | 国产欧美精品区一区二区三区 | 一区二区三区亚洲 | av一二三区 | 狠狠ri| 久久精品天堂 | 四虎4hu新地址入口2023 | 黄网址在线观看 | 狠狠天天 | 欧美一区二区 | 激情开心站 | 一区二区三区久久 | 国产精品45p | 精品国产影院 | a级毛片久久| 久久久国产一区二区三区四区小说 | 福利视频一区二区三区 | 亚洲精品一区二区三区蜜桃久 | 久久毛片 | 国产黄色免费小视频 | 亚洲视频一区二区三区四区 | 亚洲国产精品一区二区第一页 | 在线观看a视频 | 中文字幕精品一区久久久久 | 欧美日韩一区二区三区在线观看 | 久久精品国产亚洲blacked |