アプリに PreferenceActivity があり、EditTextPreference のカスタム レイアウトを指定したいと考えています。私はandroid:layout
属性を持つxmlファイルでそれを行います。すべて問題ありません。レイアウトは変更されていますが、フィールドの値を変更できません。コードはエラーなしで実行されています。デバッグでは、値が変更されていることがわかりますが、視覚的には変更がありません。私は電話をかけようとしましview.invalidate()
たonContentChanged()
が、何も変わりませんでした。ID はすべて問題なく、例外はスローされていません。だから私にはわかりません。よろしくお願いします。
これが私のpreferences_file_types.xmlのコードです:
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
<PreferenceCategory
android:key="@string/preference_category_file_types"
android:title="@string/settings_supported_file_types" >
<EditTextPreference
android:key="@string/preference_file_type_image"
android:layout="@layout/file_types_list_item"
android:title="@string/settings_supported_file_types_hint" />
</PreferenceCategory>
</PreferenceScreen>
これが私の PreferenceActivity クラスのコードです:
public class FileTypesSettingsActivity extends PreferenceActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences_file_types);
LayoutInflater inflater = getLayoutInflater();
EditTextPreference imageTypePreference = (EditTextPreference) findPreference(getString(R.string.preference_file_type_image));
View specifiedView = inflater.inflate(imageTypePreference.getLayoutResource(), null);
changeViewAttributes(specifiedView);
}
private void changeViewAttributes(View view) {
ImageView fileTypeIcon = (ImageView) view.findViewById(R.id.file_types_list_item_iv_icon);
fileTypeIcon.setBackgroundResource(R.drawable.ic_file_image);
TextView fileTypePredefined = (TextView) view.findViewById(R.id.file_types_list_item_tv_predefined_extensions);
fileTypePredefined.setText("JPG BMP GIF PNG");
TextView fileTypeAdded = (TextView) view.findViewById(R.id.file_types_list_item_tv_added_extensions);
fileTypeAdded.setText("BLA BLA BLA");
}
}