日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

if函数如何嵌入多个android,Android中多个EditText输入效果的解决方式

發布時間:2023/12/19 Android 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 if函数如何嵌入多个android,Android中多个EditText输入效果的解决方式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

在開發中,我們常常遇到這種情況

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

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

解決方法

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

/**

* 文本輸入輔助類,通過管理多個TextView或者EditText輸入是否為空來啟用或者禁用按鈕的點擊事件

*/

public final class TextInputHelper implements TextWatcher {

private View mMainView;//操作按鈕的View

private List mViewSet;//TextView集合,子類也可以(EditText、TextView、Button)

private boolean isAlpha;//是否設置透明度

public TextInputHelper(View view) {

this(view, true);

}

/**

* 構造函數

*

* @param view 跟隨EditText或者TextView輸入為空來判斷啟動或者禁用這個View

* @param alpha 是否需要設置透明度

*/

public TextInputHelper(View view, boolean alpha) {

if (view == null) throw new IllegalArgumentException("The view is empty");

mMainView = view;

isAlpha = alpha;

}

/**

* 添加EditText或者TextView監聽

*

* @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監聽,避免內存泄露

*/

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);

}

/**

* 設置View的事件

*

* @param enabled 啟用或者禁用View的事件

*/

public void setEnabled(boolean enabled) {

if (enabled == mMainView.isEnabled()) return;

if (enabled) {

//啟用View的事件

mMainView.setEnabled(true);

if (isAlpha) {

//設置不透明

mMainView.setAlpha(1f);

}

}else {

//禁用View的事件

mMainView.setEnabled(false);

if (isAlpha) {

//設置半透明

mMainView.setAlpha(0.5f);

}

}

}

}

在Activity創建時添加監聽

private TextInputHelper mInputHelper;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

//創建一個輔助類,傳入按鈕操作View

mInputHelper = new TextInputHelper(mButton);

//可添加一個或者多個EditText,當然也可以添加TextView

mInputHelper.addViews(mEditText1, mEditText2, mEditText3);

}

在Activity銷毀時移除監聽(避免內存泄露)

@Override

protected void onDestroy() {

super.onDestroy();

//移除引用,避免內存泄露

mInputHelper.removeViews();

}

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

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

總結

以上是生活随笔為你收集整理的if函数如何嵌入多个android,Android中多个EditText输入效果的解决方式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。