2011-09-27 5 views

答えて

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とregexp matcherを使って検証しました –

関連する問題