編輯:關於Android編程
有時,我們會對EditText添加最大長度限制,在EditText達到輸入上限時阻止繼續輸入並彈出提示。
這個問題看似簡單,但很難處理的完美。
由於EditText無法攔截軟件盤事件,常規的通過TextWatcher,OnKeyListener,等方法都會存在一定的問題。經過反復試錯,終於發現以下方案:
1.實現一個InputFilter,在InputFilter中判斷輸入長度,並彈出提示:
public class LengthFilter implements InputFilter { public LengthFilter(int max) { mMax = max; } @Override public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) { int keep = mMax - (dest.length() - (dend - dstart)); if (keep <= 0) { if (mErrorToast == null) { mErrorToast = Toast.makeText(ShowDetailCommentActivity.this, R.string.comment_input_overflow, Toast.LENGTH_SHORT); } mErrorToast.show(); return ""; } else if (keep >= end - start) { return null; // keep original } else { keep += start; if (mErrorToast == null) { mErrorToast = Toast.makeText(ShowDetailCommentActivity.this, R.string.comment_input_overflow, Toast.LENGTH_SHORT); } mErrorToast.show(); if (Character.isHighSurrogate(source.charAt(keep - 1))) { --keep; if (keep == start) { return ""; } } return source.subSequence(start, keep); } } private int mMax; }
mEditText.setFilters(new InputFilter[] { new LengthFilter(mMaxTextNum) });
昨天發現自己的一個應用程序的名稱不見了,我很是納悶!!!如下圖所示: 我自己的錯誤的配置文件: 後來請教了一個大四學長,人家
前言Web的架構經過多年的發展已經非常成熟了,我們常用的SSM,SSH等等,架構都非常標准。個人認為,Web服務邏輯比較清晰,目的明確,流程也相對固定,從服務器收到請求開
這個首先感謝魚C論壇的cbs大神,我是看了他的視頻。自己再動手破解他給出這三個小程序。真心這樣無私把技術分享給大家的人真的不多。再次感謝他。這裡我就我自己破解的三個小程序
演示ViewPager的預加載功能Android ViewPager 的預加載android新引入的Fragment加入了Viewpager這樣的一個組件。至於該控件的