看过就忘!为了照顾自己的痴呆脑,劳累双手记录一下。
packages/apps/Settings/AndroidManifest.xml
<activity android:name="Settings$InputMethodAndLanguageSettingsActivity"
android:label="@string/language_keyboard_settings_title"
android:icon="@drawable/ic_settings_language"
android:taskAffinity="com.android.settings"
android:parentActivityName="Settings">
<meta-data android:name="com.android.settings.FRAGMENT_CLASS"
android:value="com.android.settings.inputmethod.InputMethodAndLanguageSettings" />
</activity>
[UI 主view]
packages/apps/Settings/src/com/android/settings/inputmethod/InputMethodAndLanguageSettings.java
public void onCreate(Bundle icicle) {
addPreferencesFromResource(R.xml.language_settings);
}
packages/apps/Settings/res/xml/language_settings.xml/language_settings
<PreferenceScreen
android:key="phone_language"
android:title="@string/phone_language"
android:fragment="com.android.settings.localepicker.LocaleListEditor"
/>
packages/apps/Settings/src/com/android/settings/localepicker/LocaleListEditor.java
@Override
public void onLocaleSelected(LocaleStore.LocaleInfo locale) {
mAdapter.addLocale(locale);
updateVisibilityOfRemoveMenu();
}
packages/apps/Settings/src/com/android/settings/localepicker/LocaleDragAndDropAdapter.java
void addLocale(LocaleStore.LocaleInfo li) {
mFeedItemList.add(li);
notifyItemInserted(mFeedItemList.size() - 1);
doTheUpdate();
}
public void updateLocalesWhenAnimationStops(final LocaleList localeList) {
final RecyclerView.I