Gözcü yöntemi her karakter girdisinde tetiklenir. Ben de bu kodu onFocusChange yöntemine göre oluşturdum:
public static boolean comS(String s1,String s2){
if (s1.length()==s2.length()){
int l=s1.length();
for (int i=0;i<l;i++){
if (s1.charAt(i)!=s2.charAt(i))return false;
}
return true;
}
return false;
}
public void onChange(final EditText EdTe, final Runnable FRun){
class finalS{String s="";}
final finalS dat=new finalS();
EdTe.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus) {dat.s=""+EdTe.getText();}
else if (!comS(dat.s,""+EdTe.getText())){(new Handler()).post(FRun);}
}
});
}
Kullanmak için şu şekilde arayın:
onChange(YourEditText, new Runnable(){public void run(){
// V V YOUR WORK HERE
}}
);
ComS işlevini! ComS (dat.s, "" + EdTe.getText ())! Equ işleviyle değiştirerek yok sayabilirsiniz. Ancak, eşit işlevin kendisi bir süre çalışma zamanında doğru çalışmaz.
OnChange dinleyicisi, kullanıcı yazmaya odaklandığında EditText'in eski verilerini hatırlayacak ve ardından kullanıcı odağını kaybettiğinde veya başka bir girdiye atladığında yeni verileri karşılaştıracaktır. Eski String karşılaştırılırsa aynı yeni String değil, işi başlatır.
Yalnızca 1 EditText'iniz varsa, o zaman u pencerelerin dışında bir Ultimate Secret Transparan Mikro Düzenleme Metni yaparak bir ClearFocus işlevi yapmanız ve ona odaklanma talebinde bulunmanız, ardından İçe Aktarma Yöntemi Yöneticisi aracılığıyla klavyeyi gizlemeniz gerekecektir.