آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

محدود کردن مقدار بزرگی عدد editText منظور تعداد اعداد یا حروف نیست

120814  10 سال پیش  10 سال پیش
0 0

سلام دوستان

چطور میشه مقدار بزرگی عدد وارد شده در ادیت تکست رو محدود کرد؟

به طور مثال منظور من اینه که داخل ادیت تکست تا عدد 20 بشه وارد کرد یعنی از 0 تا 20 البته اعداد اعشاری هم وارد میشه

و 20.5 یا 21 نشه وارد کرد

ممنون از پاسخ دوستان

 برای این سوال 2 پاسخ وجود دارد.
پاسخ به سوال 
Hossein Lamei Ramandi  10 سال پیش
+1 0

یه سرچی تو استک میزدید پیدا میکردید

یکلاس بسازید و این کد هارو توش قرار بدید(ادیتور سایت قاطی کرده شما خودت هرجا مشکل داشت یه فاصله یا اینتر بزن بین بعضی کارکتر ها فاصله از بین رفته )

package com.test;

import android.text.InputFilter;
import android.text.Spanned;
public classInputFilterMinMax implementsInputFilter{
private int min, max;
publicInputFilterMinMax(int min,int max){
this.min = min;
this.max = max;}
publicInputFilterMinMax(String min,String max){
this.min =Integer.parseInt(min);
this.max =Integer.parseInt(max);
}
@Override
public CharSequence filter(CharSequence source,int start,intend,Spanned dest,int dstart,int dend){
try{
int input =Integer.parseInt(dest.toString()+ source.toString());
if(isInRange(min, max, input))
returnnull;
}catch(NumberFormatException nfe){
}
return"";privateboolean isInRange(int a,int b,int c){
return b > a ? c >= a && c <= b : c >= b && c <= a;
}}

بعد این کد هارو تو اکتیویتی که ادیت تکستتون توشه قرار بدید

 EditText  et  =(EditText) findViewById(R.id.myEditText);
et.setFilters(newInputFilter[]{newInputFilterMinMax("1","12")});
   
پاسخ به سوال 
120814  10 سال پیش
0 0

به صورت اعشاری نمیشه وارد کرد فقط اعداد صحیح میشه اما من اعشاری نیاز دارم

اینطوری نوشتم بازم نشد

publicclassInputFilterMinMaximplementsInputFilter{

privatedoublemin,max;

publicInputFilterMinMax(doublemin,doublemax){

this.min=minthis.max=max; }

this.min=Double.parseDouble(min);

  publicInputFilterMinMax(Stringmin,Stringmax){

this.max=Double.parseDouble(max);}

@Override

publicCharSequencefilter(CharSequencearg0,intarg1,intarg2,Spannedarg3,intarg4,intarg5){

// TODO Auto-generated method stub

try{

int input =Integer.parseInt(arg3.toString()+arg0.toString());

if(isInRange(min,max, input))

returnnull;

}

catch(NumberFormatException nfe){}

return"";

 

}

privatebooleanisInRange(doublea,doubleb,doublec){

returnb>a?c>=a&&c<=b:c>=b&&c<=a;

}

}

 

0 0
با اصلاح این کد درست شد double input = Double.parseDouble(arg3.toString() + arg0.toString()); (10 سال پیش)

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .