PreferenceInject注解的定义:
ViewUtils中的注解部分:
使用方法:
新建xml文件pref_test.xml:
新建PrefActivity.java:
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface PreferenceInject {
String value();
}
ViewUtils中的注解部分:
PreferenceInject preferenceInject = field.getAnnotation(PreferenceInject.class);
if (preferenceInject != null) {
try {
Preference preference = finder.findPreference(preferenceInject.value());
if (preference != null) {
field.setAccessible(true);
field.set(handler, preference);
}
} catch (Throwable e) {
LogUtils.e(e.getMessage(), e);
}
}
使用方法:
新建xml文件pref_test.xml:
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
<Preference
android:key="test"
android:title="Test"
android:summary="it is just for test"
/>
</PreferenceScreen>
新建PrefActivity.java:
public class PrefActivity extends PreferenceActivity {
@PreferenceInject("test")
public Preference test;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.pref_test);
ViewUtils.inject(this);
}
}