編輯:關於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) });
Android 解決應用程序名稱丟失問題
昨天發現自己的一個應用程序的名稱不見了,我很是納悶!!!如下圖所示: 我自己的錯誤的配置文件: 後來請教了一個大四學長,人家
Android App架構設計
前言Web的架構經過多年的發展已經非常成熟了,我們常用的SSM,SSH等等,架構都非常標准。個人認為,Web服務邏輯比較清晰,目的明確,流程也相對固定,從服務器收到請求開
Android逆向實例筆記—續力破解三個Android程序
這個首先感謝魚C論壇的cbs大神,我是看了他的視頻。自己再動手破解他給出這三個小程序。真心這樣無私把技術分享給大家的人真的不多。再次感謝他。這裡我就我自己破解的三個小程序
Android項目-智慧北京:02(三種技術設計主頁面及源碼分析點擊事件傳遞的機制及Json數據傳遞的使用)
演示ViewPager的預加載功能Android ViewPager 的預加載android新引入的Fragment加入了Viewpager這樣的一個組件。至於該控件的