2011-09-27 127 views
8

我有PreferenceActivity有2個字段。驗證偏好設置。 Android

  1. 甲URL
  2. 時間,以秒

我需要驗證第一個爲一個有效的URL,第二個用於一個整數值。我如何用標準手段來做到這一點?

回答

14

下面是一些代碼實現您的片段OnPreferenceChangeListener

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    addPreferencesFromResource(R.xml.preferences); 

    Your_Pref = (EditTextPreference) getPreferenceScreen().findPreference("Your_Pref"); 

    Your_Pref.setOnPreferenceChangeListener(new OnPreferenceChangeListener() { 

     @Override 
     public boolean onPreferenceChange(Preference preference, Object newValue) { 
      Boolean rtnval = true; 
      if (Your_Test) { 
       final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); 
       builder.setTitle("Invalid Input"); 
       builder.setMessage("Something's gone wrong..."); 
       builder.setPositiveButton(android.R.string.ok, null); 
       builder.show(); 
       rtnval = false; 
      } 
      return rtnval; 
     } 
    }); 
} 
+0

該字段的新值保存在名爲newValue的對象中。使用newValue.tostring(Your_Test) –

+0

首選項不會被保存,如果我們使用這個。 –

3

您可以在xml中爲這些字段使用android:inputType屬性,這會向用戶顯示一個鍵盤,以便以特定格式輸入值。

查看更多

http://developer.android.com/reference/android/text/InputType.html

但是,這並不能保證該URL不會畸形。你需要在提交處理程序中使用正則表達式來檢查。

+1

呀。我通過onchangelistener和正則表達式匹配器進行驗證 –