其他分享
首页 > 其他分享> > Android Preferenceactivity getView

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