大佬教程收集整理的这篇文章主要介绍了动态更改Android首选项的widgetlayout资源,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
<PreferenceScreen> <Preference android@R_380_6964@="title" android:key="key" android:widgetLayout="@layout/someview"/> </PreferenceScreen>
在这里,我设置了一个widgetlayout资源,该资源应显示在首选项的右侧(如复选框首选项的复选框).我也可以在我的PreferenceActivity.onCreate()的代码中设置这个资源,如下所示:
Preference myPreference = findPreference("key"); myPreference.setWidgetLayoutresource(R.layout@L_455_5@meview);
这两种方法都可以正常工作,因此我可以在首选项右侧看到我的资源.
但是,我无法访问此资源(someview)以在运行时更改其属性.
无论是手动设置资源ID,从资源或findViewById充气它似乎都工作 – 我有无效的资源/资源ID未找到异常.似乎偏好活动稍后会使资源膨胀.
有没有人遇到同样的问题?有关如何在运行时更改widgetlayout资源属性的任何想法?
这是一个类似的问题,但没有得到回答
> [android-developers] problem accessing widget in Preference widgetLayout
1)创建自定义首选项并覆盖onBindView():
public class ProgressBarPreference extends Preference { private ProgressBar mProgressBar; // constructors @Override protected void onBindView(View view) { super.onBindView(view); mProgressBar = (ProgressBar) view.findViewById(R.id.progressBar); } public ProgressBar getProgressBar() { return mProgressBar; } }
2)将此首选项添加到屏幕xml:
<package.ProgressBarPreference android:key="key" android:sum@R_673_11035@="sum@R_673_11035@" android@R_380_6964@="title" android:widgetLayout="@layout/preference_widget_progressbar" />
preference_widget_progressbar.xml
<?xml version="1.0" encoding="utf-8"?> <ProgressBar xmlns:android="http://scheR_416_11845@as.android.com/apk/res/android" android:id="@+id/progressBar" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" />
或者调用setWidgetLayoutresource().
3)onPreferenCETreeClick()时获取ProgressBar:
if (preference instanceof ProgressBarPreferencE) { ProgressBar progressBar = ((ProgressBarPreferencE) preferencE).getProgressBar(); // TODO something }
但是,一年多了!
以上是大佬教程为你收集整理的动态更改Android首选项的widgetlayout资源全部内容,希望文章能够帮你解决动态更改Android首选项的widgetlayout资源所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。