2012-03-04 24 views
2

我目前正在探索Android 3.0和4.0的新功能,並且ActionBar看起來不錯,而menu.xml系統也使導航更容易和更一致(使用更少的代碼)貫穿應用。Android中的表單創建和驗證

同樣的情況也出現在Android中,這已經成爲框架的一部分。通過XML創建應用程序設置非常簡單。

是否有一種在Android中創建和驗證表單數據的一致方法?當然,它已經被Java Web框架解決了一百萬次,但我似乎無法找到一種直接的方式,而無需在自己的代碼中實現它。

我發現了EditText.setError(),它看起來很有用,但您仍然負責自己在您的代碼中進行設置,並且只能在EditText上使用它。如果框架的一個角落爲你處理了所有這些東西,那將是很酷的。

謝謝!

回答

0

在基於的EditText驗證的術語(我還沒有使用或測試與驗證其它形式的式組件)我發現,使用的EditText組件上的SETERROR()方法已經充足。

但是當然還有其他的開發者可能想要使用的表單組件,比如單選按鈕,複選框,旋鈕等等,而這些組件並沒有被相同類型的驗證所覆蓋。

作爲一個提示,我遇到了一個github項目,該項目擴展了setError功能以提供內置驗證算法:Android Form EditText

0

對於偏好設置,您可以使用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; 
      } 
     }); 
    }