2010-02-17 2 views
2

나는 TextField.PhoneNumber이지만 "+"문자는 걸러 내고 싶습니다. 즉, TextField에 대한 새로운 제한 조건이 필요합니다. TextField로 새로운 제약 조건을 정의 할 수있는 방법이 있습니까?MIDP TextField에서 키를 필터링하는 방법?

midp 내의 휴대 전화에서 키 순환을 방지하는 방법은 어떻습니까?

+0

는 '+'국가 코드에 대한 표준 접두어 : 아래와 같은

코드가 될 수 보입니다. 왜 그것을 걸러 내고 싶니? – finnw

+0

내 고객은 특별한 요구 사항이 있습니다. 키 순환으로 인해 사용자 속도가 느려지고 있습니다. – sk560

답변

1

정말 원하는 것이 아닐 수도 있습니다. 그러나 MIDP는 원하는대로 변경 제한 규칙을 지원하지 않습니다. 그래서, 당신의 목적을 위해 해킹을 제안합니다.

ItemStateListener를 사용하여 텍스트 필드에 필터링 할 문자열이 포함되어 있는지 확인하고이 문자열이 있으면 텍스트 필드를 강제 변경하십시오.

// set item state listener 
form.setItemStateListener(this); 

// check if text field contains invalid string 
// then replace it 
public void itemStateChanged(Item item) { 
    if (item == getTextField()) { 
     TextField t = (TextField)item; 
     String s = t.getString(); 
     // + is invalid string 
     int pos = s.indexOf("+"); 
     if (pos != -1) { 
      t.setString(s.substring(0, pos) + s.substring(pos + 1)); 
     } 
    } 
} 
+0

꽤 멋지다. 귀하의 솔루션이 작동합니다. 감사. 그러나 작동하도록 별도의 클래스에서 폼을 확장해야합니다. 이제 나머지 코드는 제대로 작동하지 않습니다. 곧 여기로 돌아올거야. – sk560

관련 문제