2012-12-07 7 views
1

내 prefernces 조각에 EditTextPrefernce가 있습니다. XML로 androd : numeric = "integer"로 설정했습니다. 좋아, 그게 효과가있어 ...하지만 문제는 사용자가이 환경 설정에 값을 삽입해야합니다, 그 모든 것을 삭제할 수 없습니다 그리고 확인을 클릭하면, 그때 null 값을 얻을 것이다. XML 기본 값을 10000으로 설정하고 preference.getLong 메서드에서 기본 1000 값도 반환했습니다.대화 상자에서 Android EditTextPreference를 클릭하십시오.

그래서 내가 어떻게 든 사용자가 대화 상자에서 확인을 누르면 편집 텍스트를 확인해야한다고 생각합니다. 이것이 가능한가? 아니면 누구에게 더 나은 해결책이 있습니까?

답변

1

내가 텍스트 경우 사용자가 대화 상자에서 OK (확인) 버튼을 클릭해도 아무런 변화가 없다는 사실 원

editPreference.setOnPreferenceChangeListener(new OnPreferenceChangeListener() 
       { 
        @Override 
        public boolean onPreferenceChange(Preference preference, Object newValue) 
        { 
         try 
         { 
          //Put validation of newValue entered by user 
          //Following is example you can change as you wish 
          if(newValue != null) 
          { 
           long myVal = Long.parseLong(String.valueOf(newValue)); 
           if(myVal> 0) 
           { 
            //All ok 
           } 
           else 
           { 
            //Invalid Number 
           } 
          } 
         } 
         catch (final Exception e) 
         { 
          return false; 
         } 
         return false; 
        } 
       }); 
+0

당신은 당신이 찾고있는 것을 달성 할 수있는 코드의 조각이되어 다음 비었다. 하지만 그래 ... 이건 더 간단한 해결책이야. 그래서 받아 들일거야. 결국 나는 올바른 방향으로 가고 있었지만 onPreferenceChangeListener 대신 onSharedPreferenceChangeListener 클래스를 구현하고있었습니다. 대단히 감사합니다 :) – Tooroop

+0

당신은 wellcome입니다 –

관련 문제