我的应用程序中有 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");
}
}