2011-09-27 32 views
8

Tôi có PreferenceActivity với 2 trường.Xác thực tùy chọn. Android

  1. URL
  2. Thời gian trong vài giây

tôi cần phải xác nhận là người đầu tiên cho một URL hợp lệ và thứ hai cho một giá trị số nguyên. Làm thế nào để tôi làm điều đó với các phương tiện tiêu chuẩn?

Trả lời

14

Dưới đây là một số mã thực hiện OnPreferenceChangeListener trong đoạn của bạn:

@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

Giá trị mới của trường được giữ trong một đối tượng được gọi là newValue. Sử dụng tùy chọn newValue.tostring cho (Your_Test) –

+0

sẽ không được lưu nếu chúng tôi sử dụng tính năng này. –

3

Bạn có thể sử dụng thuộc tính android: inputType cho các trường này trong xml, điều này sẽ hiển thị bàn phím cho người dùng để nhập giá trị theo định dạng cụ thể.

Xem thêm

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

Nhưng điều này không đảm bảo rằng các URL sẽ không bị thay đổi. Bạn cần phải kiểm tra bằng cách sử dụng cụm từ thông dụng trong trình xử lý gửi của mình.

+1

Yeah. Tôi đã xác nhận thông qua onchangelistener và regexp matcher –

Các vấn đề liên quan