Android Preferenceactivity getView
作者:互联网
我有这样的代码:)
我想编辑我的自定义首选项布局的文本属性.
但是对getView函数的对象所做的任何更改都不会影响首选项屏幕中的实际列表.有任何想法吗?我知道我无法扩展PreferenceScreen,在这种情况下我无法使用任何其他类型的首选项,我只希望能够在代码中从我的布局编辑自定义textview.
PreferenceScreen settings = getPreferenceManager().createPreferenceScreen(this);
settings.setLayoutResource(R.layout.mypreference);
View test = (View) settings.getView(null,getListView());
TextView text = (TextView)test.findViewById(R.id.text);
text.setText("BLA BLA");
解决方法:
我们应该使用getView(convertView, parent)
但是在StackOverflow上有无数未解答的问题,显然没有人知道如何使用它.所以我们唯一的选择是创建自定义首选项:
创建一个新类:
public class CustomPreference extends Preference {
public CustomPreference(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
protected void onBindView(View rootView) {
super.onBindView(rootView);
View myView = rootView.findViewById(R.id.myViewId);
// do something with myView
}
}
在xml / preferences.xml中,添加自定义首选项:
<your.package.name.CustomPreference
android:key="custom_preference"
android:layout="@layout/custom_layout" />
标签:preferenceactivity,android 来源: https://codeday.me/bug/20190901/1786166.html