2012-02-22 5 views
1

Android 앱에서 사용자가 PreferenceActivity를 확장하는 클래스를 실행하여 자신의 환경 설정을 편집 할 수있게했습니다. res \ xml에는 사용자가 구성 할 수있는 필드에 대한 xml- 설명이있는 파일 - preferences.xml이 있습니다. 사용자 이름과 비밀번호 같은 것들. 샘플 스 니펫 :저장시 공유 미리보기를 정리하는 방법

<EditTextPreference android:name="User Name" 
android:summary="Name in Your Name/Company format" 
android:defaultValue="" android:title="Login name" android:key="userName" 
android:id="@+id/userName"/> 

<EditTextPreference android:name="Password" 
android:summary="Your web password" android:defaultValue="" 
android:title="Login password" android:password="true" android:key="userPassword" 
android:id="@+id/userPassword"/> 

모든 것이 예상대로 작동합니다. 내 주요 응용 프로그램 코드에서 사용자가 구성한 값에 액세스 할 수 있습니다.

처리 방법에 대한 좋은 조언을 얻고 싶습니다. 환경 설정 값에서 선행 공백과 후행 공백을 제거하십시오.

사용자 오류 또는 유용한 키보드 응용 프로그램 때문에 사용자가 EditTextPreferences 필드에 추가 공백 문자를 입력하는 경우가 있습니다. 첫 번째 또는 마지막 문자로 사용됩니다.

사용자가 PreferenceActivity를 종료 할 때까지 명백한 타이핑 오류를 제거 할 수 있으면 좋겠습니다. 사용자 환경 설정을 정리하는 좋은 방법에 대한 제안을 받고 싶습니다.

+0

모든 사용자 입력에 대한 호출 트림() 작동합니까? – hovanessyan

답변

3

사용자가 제공 한 값에 String.trim()을 사용하여 환경 설정에 저장하기 만하면됩니다. trim() 메서드는 입력 문자열의 앞과 끝에있는 모든 공백 문자를 제거합니다.

http://developer.android.com/reference/java/lang/String.html#trim()

+1

제안 해 주셔서 감사합니다. 나는 당신이 나를 위해 뭔가를 분명히 할 수 있기를 바랍니다. PreferencesActivity를 사용하고 있기 때문에, 나는 모든 환경 설정 값을 직접 저장하지 않습니다. 저장은 PreferencesActivity와 xml 파일의 조합에서 추상화 레이어에 숨겨져 있어야합니다. 그렇다면 String.trim()을 수행하기 위해 환경 설정의 모든 단일 값에 액세스하는 것이 어떻습니까? – Jbruntt

+2

아아아, 미안해. EditTextPreference를 확장하여 자신의 TrimmedEditTextPreference를 만들고 trim()을 수행 할 setText()를 재정의합니다. http://developer.android.com/reference/android/preference/EditTextPreference.html –

+0

제안을 시험해 보려면 다음을 수행하십시오. new 클래스 : public class TrimmedEditTextPreference는 EditTextPreference를 확장합니다. 지금은 세 가지 생성자 만 포함되어 있습니다. 아직 시작하지 않은 setText() 보았다. 내 preferences.xml에서 그런 다음 항목 중 하나를 EditTextPreference 유형에서 TrimmedEditTextPreference로 변경했습니다. 시뮬레이터에서 앱을 실행하고 환경 설정을 열면 강제 종료됩니다. logcat에서 java.lang.ClassNotFoundException을 얻습니다. android.preference.TrimmedEditTextPreference in loader [email protected] – Jbruntt

관련 문제