2011-08-13 3 views
0

Android 용 실험용 앱에 대한 환경 설정을 만들려고합니다. 그러나 나는 일할 선호를 얻을 수 있습니다.안드로이드 앱 환경 설정의 값이 자동으로 저장 되나요?

내가 디스플레이 랑그을 결정하는 사용이 기능을 사용하고자하는 환경 설정을 검색 할 수 있습니다 :

private String selectLang() 
{ 
    SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this); 
    String lang = preferences.getString("lang", "n/a"); 
    return lang; 
} 

그럼 올바른 언어를 표시하려면이 코드를 사용하는 ListActivity를위한에서 onCreate 방법 내부 :

String lang = selectLang(); 
String title = (lang == "english") ? "English" : "Arabic"; 

제목은 데이터베이스의 열입니다. 이 코드는 작동하지 않는 것 같고 무엇이든지간에 아랍어를 얻습니다. 이 코드를 사용하여 lang의 값을 알았습니다.

Toast.makeText(this, lang, Toast.LENGTH_LONG).show(); 

영어가 표시되지만 영어는 표시되지 않습니다.

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
<string-array name="lang"> 
    <item>Arabic</item> 
    <item>English</item> 
</string-array> 
<string-array name="langValues"> 
    <item>arabic</item> 
    <item>english</item> 
</string-array> 
</resources> 

내가 SharedPreference 편집기를 사용해야하지만 그 전체 작업 예제를 얻을 수 있도록 여기에 대한 답의 번호를 읽고 :

다음은이 목록에 대한 내 XML이다.

도와 주시겠습니까?

답변

3

여기 : lang == "english"lang.equals("english")이어야합니다.

equals 또는 equalsIgnoreCase을 사용하여 문자열을 다른 개체와 비교하십시오. == 연산자는 객체의 내용이 아닌 객체 참조를 비교하므로 검사는 항상 false로 평가됩니다.

+0

대단히 감사합니다. 나는 왜 내가 그것을 포함 시켰는지에 대한 코드 줄이있는 것을 알았다. PHP 배경에서 나오면 OOP 디자인과 Java와 같은 컴파일 된 언어를 완전히 이해하는 것은 쉽지 않습니다. –

+0

Java가 가장 좋아하는 언어이지만 이것이 Java의 가장 혼란스러운 구문이라고 생각합니다. 하루에 약 5 개 이상의 질문이 있습니다.이 문제는 근본 문제와 정확히 같습니다 ... – MByD

+0

초기 질문을 참고하십시오 : 값을 변경하고 저장하려면 환경 설정 편집기를 사용하고 커밋해야합니다. 그들은 자동으로 저장하지 않습니다 : SharedPreferences.Editor editor = preferences.edit(); editor.commit(); –

관련 문제