如何使用首选项活动访问布局中设置的窗口小部件

时间:2012-06-12 12:49:39

标签: android preferenceactivity

我正在创建首选项Activity,因为我使用布局添加自定义首选项屏幕,我想动态更新值。

以下是代码:

 <PreferenceCategory
    android:key="more_category"
    android:title="More Wallpapers " >
    <Preference
        android:key="more_apps"
        android:layout="@layout/more_apps" />

这是我的布局more_apps.xml

   <?xml version="1.0" encoding="utf-8"?>

   <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:padding="5dp"
android:layout_height="match_parent"
 >

<TextView
    android:id="@+id/title_text"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="10dp"
    android:layout_marginTop="10dp"
    android:layout_toRightOf="@+id/image_one"
    android:text="Large Text"
    android:textAppearance="?android:attr/textAppearanceLarge" />

<TextView
    android:id="@+id/description_text"
    android:layout_width="wrap_content"
    android:layout_marginLeft="10dp"
    android:layout_marginTop="10dp"
    android:layout_height="wrap_content"
    android:layout_below="@+id/title_text"
    android:layout_toRightOf="@+id/image_one"
    android:text="Medium Text"
    android:textAppearance="?android:attr/textAppearanceMedium" />

<ImageView
    android:id="@+id/image_one"
    android:layout_width="75dp"
    android:layout_height="75dp"
    android:src="@drawable/launcher" />

我想在运行时更新我的​​textview和图片,如何在偏好活动中访问?

请帮忙

1 个答案:

答案 0 :(得分:4)

你需要在xml布局中使用你的偏好类,如下面的代码

<PreferenceCategory
   android:key="more_category"
   android:title="More Wallpapers " >

   <com.myapp.myclass  android:key="more_apps"/>

</PreferenceCategory>

com.myapp是一个包名,myclass是java文件,所有编码都来自..

这是java代码和膨胀的xml more_apps.xml

  public class myclass extends Preference {

    public myclass(Context context) {
    super(context);
    // TODO Auto-generated constructor stub
    }

@Override
protected View onCreateView(ViewGroup parent) {
    // TODO Auto-generated method stub

    LayoutInflater inflater = (LayoutInflater) getContext()
            .getSystemService(Context.LAYOUT_INFLATER_SERVICE);

    View view = inflater.inflate(R.layout.more_apps, null);

    return view;
  }

 }

这样您就可以创建自定义偏好活动并执行任何操作..