0

두 개의 다른 환경 설정 화면에서 사용자에게 보여주고 싶은 EditTextPreference가 있습니다. 두 개의 다른 화면에 표시된 것과 똑같은 기본 설정 (android : key를 "myEditText"로 지정)으로되어 있습니다.Android : 환경 설정 xml에서 동일한 환경 설정을 여러 번 사용

<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> 
    <PreferenceCategory android:title="@string/someCategory"> 
     <PreferenceScreen android:key="someScreen"> 
      <PreferenceScreen android:key="someSubScreen"> 
       <PreferenceCategory android:title="@string/someSubCategory"> 
        <EditTextPreference android:key="myEditText" 
        .... 
        /> 
       </PreferenceCategory> 
      </PreferenceScreen> 
     </PreferenceScreen> 
    </PreferenceCategory> 
    <PreferenceCategory android:title="@string/someOtherCategory"> 
     <PreferenceScreen android:key="someOtherScreen"> 
      <PreferenceScreen android:key="someOtherSubScreen"> 
       <PreferenceCategory android:title="@string/someOtherSubCategory"> 
        <EditTextPreference android:key="myEditText" 
        .... 
        /> 
       </PreferenceCategory> 
      </PreferenceScreen> 
     </PreferenceScreen> 
    </PreferenceCategory> 
</PreferenceScreen> 

내가 someScreen를 통해 myEditText과 텍스트를 입력하십시오,이 표시되지 않습니다 내가 다시 오픈 myEditText 갈 때 : 그래서, 여기가 (완전히 당신에게 예를 보여주기 위해 옷을 벗었)처럼 보일 수있는 무엇 someOtherScreen을 통해. 환경 설정을 닫고 다시 열어야합니다. 그런 다음 두 EditText 모두 동일한 텍스트를 표시합니다.

다른 화면에서 동일한 환경 설정을 사용하는 가장 좋은 방법은 무엇입니까?

/편집 :

어쨌든 왜 그렇게하고 싶습니까? 첫 번째 PreferenceScreen은 모두 URL 단축에 관한 것입니다. 단축키, 사용하려는 서비스 선택/순서 지정, bit.ly, goo.gl 등의 사용자 자격 증명 입력이 가능합니다.

두 번째 화면은 동일한 설정 옵션을 사용할 수있는 파일 업로드 서비스 용입니다 파일 업로드, 서비스 선택/재정렬, 업로드 서비스에 대한 사용자 자격 증명 입력).

이제 CloudApp과 파일 및 URL 단축 서비스가 통합됩니다. 따라서 사용자는 URL 단축 화면에서 파일을 찾길 원할 수도 있지만 파일 업로드 화면에서 찾아 볼 수도 있습니다. 그래서 저는 그를 쉽게 만들고 양쪽 스크린에 보여주고 싶습니다. 그것들은 최상위 화면이 아니며, 꽤 깊은 구조입니다.

그럼,이 의미가 있든 없든 : 가능합니까?

+0

왜 이것이 처음에는 좋은 생각이라고 생각합니까? – CommonsWare

+0

그 질문에 대한 답을 편집했습니다. – Manuel

답변

1

좋아, 이제 내가하고있는 일이 여기있다. 예쁘지는 않지만 일을 처리하고 그 순간에 만족합니다.

동일한 키를 사용하는 대신 다른 EditTextPreferences (예 : myEditText 및 myEditText2)를 사용합니다. 나는 첫 번째의 EditText에 변경 사항을 모니터링 할 필요는 OnSharedPreferenceChangeListener가 등록되어있는 주요 활동에

myEditText.setOnPreferenceChangeListener(myEditTextChangeListener); 
myEditText2.setOnPreferenceChangeListener(myEditTextChangeListener); 

:

final OnPreferenceChangeListener myEditTextChangeListener = new OnPreferenceChangeListener() { 
     public boolean onPreferenceChange(Preference preference, Object newValue) { 
      String newEntry = (String)newValue; 
      myEditText.setText(newEntry); 
      myEditText2.setText(newEntry); 
      return false; 
     } 
    }; 

모두 EditTextPreferences에 리스너를 할당 : 환경 설정 코드에서 는 OnPreferenceChangeListener를 만들 . 사실, 두 번째 EditText는 항상 첫 번째 EditText와 동일한 항목을 가지고 있기 때문에 완전히 무시합니다.