下面列出了android.preference.Preference#setLayoutResource ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
public static void setLayoutResource(@NonNull Context context, @NonNull Preference preference, @Nullable AttributeSet attrs) {
boolean foundLayout = false;
if (attrs != null) {
for (int i = 0; i < attrs.getAttributeCount(); i++) {
final String namespace = ((XmlResourceParser) attrs).getAttributeNamespace(0);
if (namespace.equals("http://schemas.android.com/apk/res/android") &&
attrs.getAttributeName(i).equals("layout")) {
foundLayout = true;
break;
}
}
}
boolean useStockLayout = false;
if (attrs != null) {
TypedArray a = context.getTheme().obtainStyledAttributes(attrs, com.afollestad.materialdialogs.commons.R.styleable.Preference, 0, 0);
try {
useStockLayout = a.getBoolean(com.afollestad.materialdialogs.commons.R.styleable.Preference_useStockLayout, false);
} finally {
a.recycle();
}
}
if (!foundLayout && !useStockLayout)
preference.setLayoutResource(com.afollestad.materialdialogs.commons.R.layout.md_preference_custom);
}
@Override
public void onResume() {
super.onResume();
if (Utils.hasLoggedIn(getActivity(), accountManager) && (findPreference(LOGOUT_KEY) == null)) {
Preference logoutPreference = new Preference(getActivity());
logoutPreference.setKey(LOGOUT_KEY);
logoutPreference.setLayoutResource(R.layout.common_logout);
logoutPreference.setOnPreferenceClickListener(this);
getPreferenceScreen().addPreference(logoutPreference);
}
}
private void hidePreference(Preference preference) {
preference.setLayoutResource(R.layout.hidden);
}
private void markFieldInvalid(Preference field) {
field.setLayoutResource(R.layout.invalid_preference_row);
}
private void markFieldValid(Preference field) {
field.setLayoutResource(R.layout.valid_preference_row);
}