我正在使用 PreferenceScreen xml 创建一个 PreferenceActivity。我想在单击 CheckBoxPreference 的标签(标题)时打开一个新的首选项屏幕,并且当用户单击此 CheckBoxPreference 的复选框时,正常的首选项功能将起作用。那么我该怎么做呢?
例如:在android中更改用户配置文件(通过单击单选按钮)并更改其属性(通过单击此单选按钮的标签)
我正在使用 PreferenceScreen xml 创建一个 PreferenceActivity。我想在单击 CheckBoxPreference 的标签(标题)时打开一个新的首选项屏幕,并且当用户单击此 CheckBoxPreference 的复选框时,正常的首选项功能将起作用。那么我该怎么做呢?
例如:在android中更改用户配置文件(通过单击单选按钮)并更改其属性(通过单击此单选按钮的标签)
我认为很难使用默认偏好。但是您可以尝试扩展原始onBindView
方法,根据文档:This is a good place to grab references to custom Views in the layout and set properties on them.
所以,这是一个CheckBoxPreference
可点击文本的示例。
public class MyCheckBoxPreference extends CheckBoxPreference {
static final String TAG = "MyCheckBoxPreference";
public MyCheckBoxPreference(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
public MyCheckBoxPreference(Context context, AttributeSet attrs) {
super(context, attrs);
}
public MyCheckBoxPreference(Context context) {
super(context);
}
@Override
protected void onBindView(View v) {
super.onBindView(v);
((ViewGroup) v).getChildAt(1).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.i(TAG, "onClick " + getKey());
}
});
}
}