SDK를 사용하여 Sony Smartwatch 용 앱을 쓰고 있습니다. 다음은 주요 활동의 일부 :환경 설정을 클릭 할 때까지 공유 환경 설정이 적용되지 않습니다.
class SmartTickerActivity extends ControlExtension {
private Handler mHandler;
SmartTickerActivity(final String hostAppPackageName, final Context context, Handler handler) {
super(context, hostAppPackageName);
if (handler == null) {
throw new IllegalArgumentException("handler == null");
}
}
@Override
public void onStart() {
//do some stuff
PreferenceManager.setDefaultValues(mContext, R.xml.preference, false);
}
문제는 저장된 환경 설정 때 Smartwatch를 응용 프로그램 출시에 적용되지 않는 것입니다. XML의 기본 환경 설정 값도 없습니다. 그러나 휴대 전화에서 앱의 환경 설정 중 하나를 클릭하면 저장된 기본 설정 값이 즉시 Smartwatch에 적용됩니다.
주 클래스에는 onCreate() 메서드가 없으므로 루프가 발생합니다. 문제가 잘 소니 SDK와 전혀 상관없는 수 있도록
public class MyPreferenceActivity extends PreferenceActivity {
private OnSharedPreferenceChangeListener mListener = new OnSharedPreferenceChangeListener() {
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
Preference pref = findPreference(key);
if (pref instanceof ListPreference) {
ListPreference listPref = (ListPreference) pref;
pref.setSummary(listPref.getEntry().toString());
}
if (pref instanceof EditTextPreference) {
EditTextPreference editTextPref = (EditTextPreference) pref;
pref.setSummary(editTextPref.getText().toString());
}
}
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Load the preferences from an XML resource
addPreferencesFromResource(R.xml.preference);
setSummaries();
setTypeface(SmartTickerActivity.mainLayout);
if (previewLayout != null) setTypeface(previewLayout);
// Handle read me
Preference readMe = findPreference(getText(R.string.preference_key_read_me));
readMe.setOnPreferenceClickListener(new OnPreferenceClickListener() {
public boolean onPreferenceClick(Preference readMe) {
showDialog(DIALOG_READ_ME);
return true;
}
});
// Handle about
Preference about = findPreference(getText(R.string.preference_key_about));
about.setOnPreferenceClickListener(new OnPreferenceClickListener() {
public boolean onPreferenceClick(Preference about) {
showDialog(DIALOG_ABOUT);
return true;
}
});
// Handle preview
Preference preview = findPreference(getText(R.string.preference_key_preview_dialog));
preview.setOnPreferenceClickListener(new OnPreferenceClickListener() {
public boolean onPreferenceClick(Preference preview) {
showDialog(DIALOG_PREVIEW);
return true;
}
});
}
나는 안드로이드 개발 오히려 경험이있어 :
다음은 환경 활동의 일부입니다. 누구든지 도와 줄 수 있습니까?
감사합니다! 내가 원하는대로 작동합니다. 내 새 응용 프로그램 클래스 이름을 내 매니페스트의 부분에 추가 했으므로 이제는 응용 프로그램 인스턴스의 컨텍스트를 잡아내어 어떤 방법 으로든 내 기본 설정을 가져올 수 있습니다. 완전한! –
NumberElevenRoad