Android源码计算器:当输入到一定数,加减乘除一些数后,容易报错。
2.想在计算器的数字输入框中,加入限制最大输入数并提示。
用如下方法本来可以很轻意地解决此问题,但由于布局运用到了:CalculatorDisplay,其extends了ViewSwitcher,在lengthFilter需要用到参数:EditText,即输入框。由于对android源码计算器不熟,一时不知如何获取计算器输入框,后来发现通过CalculatorDisplay的getChildAt(1)可以取得。在onCreate调用如下lengthFilter方法,如:lengthFilter(this,(EditText)mDisplay.getChildAt(1),50,getResources().getString(R.string.most_char));可以解决
-
publicstaticvoidlengthFilter(finalContextcontext,finalEditTexteditText,finalintmax_length,finalStringerr_msg){
-
- InputFilter[]filters=newInputFilter[1];
-
- filters[0]=newInputFilter.LengthFilter(max_length){
-
- @Override
-
publicCharSequencefilter(CharSequencesource,intstart,intend,
- Spanneddest,intdstart,intdend){
-
-
intdestLen=getCharacterNum(dest.toString());
-
intsourceLen=getCharacterNum(source.toString());
-
if(destLen+sourceLen>max_length){
- Toast.makeText(context,err_msg,Toast.LENGTH_SHORT).show();
-
return"";
- }
-
returnsource;
-
- }
-
- };
-
- editText.setFilters(filters);
-
- }
-
-
-
-
-
-
publicstaticintgetCharacterNum(finalStringcontent){
-
if(null==content||"".equals(content)){
-
return0;
- }else{
-
return(content.length()+getChineseNum(content));
- }
- }
-
-
-
-
-
-
-
-
-
publicstaticintgetChineseNum(Strings){
-
-
intnum=0;
-
char[]myChar=s.toCharArray();
-
for(inti=0;i<myChar.length;i++){
-
if((char)(byte)myChar[i]!=myChar[i]){
- num++;
- }
- }
-
returnnum;
- }
分享到:
相关推荐
Android源码——简单代码实现的Android源码——计算器源码.zip
安卓Android源码——Andorid科学计算器源码.zip
Android源码——超级清爽android计算器界面源码.zip
安卓Android源码——Android游戏源码——忍者快跑.zip
Android源码——计算器源码.zip
安卓Android源码——计算器源码.zip
安卓Android源码——GpsTracker源码.zip
Android源码——数据库SQLite.zip
安卓Android源码——BMI健康计算器.zip
Android源码——科学计算器源码.zip
安卓Android源码——文本框可输入字符数量源码.zip
安卓Android源码————仿美图秀秀和IOS系统的相机胶卷.zip
安卓Android源码——android相册系统(用Matrix实现).rar
安卓Android源码————仿美图秀秀和IOS系统的相机胶卷.rar
Android源码——超级清爽android计算器界面源码.7z
物联网智能插座 AndroidApp部分——本科毕业设计项目源码物联网智能插座 AndroidApp部分——本科毕业设计项目源码物联网智能插座 AndroidApp部分——本科毕业设计项目源码物联网智能插座 AndroidApp部分——本科毕业...
安卓Android源码——android相册系统(用Matrix实现).zip
安卓Android源码——超级清爽计算器界面源码.zip