2012-12-07 67 views
1

我在我的prefernces片段中有一個EditTextPrefernce。我已經在XML中將它設置爲androd:numeric =「integer」。好的,這是工作......但問題是,用戶必須在此首選項中插入一個值,他不能刪除所有內容並單擊確定,因爲我會得到空值。我已將XML默認值設置爲10000,並在preference.getLong方法中也返回默認值1000。對話框點擊的Android EditTextPreference

所以我想我不得不以某種方式檢查編輯文本時,用戶在對話框中確定。這可能嗎?還是有人有更好的解決方案?

回答

1

以下是段代碼的,通過它可以實現你在找什麼,

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

我其實想的是,當用戶如果文本對話框上單擊OK按鈕沒有任何反應是空的。但是,是的...這是一個更簡單的解決方案,所以我會接受它。最後,我採取了正確的方式,但是我正在實施onSharedPreferenceChangeListener而不是onPreferenceChangeListener。非常感謝你:) – Tooroop

+0

你很好 –