我有一个PreferenceScreen,用户可以在这里选中/取消选中复选框。
要访问我一直使用的活动中的任何控件,请执行以下操作:
var button = FindViewById<Button>(Resource.Id.myButton);现在,我想访问我的CheckBoxPreference..。,但这不起作用,我得到了一个例外:
类型'Android.Preferences.CheckBoxPreference‘不能用作泛型类型或方法'Android.App.Activity.FindViewById(int)’中的类型参数'T‘。没有从'Android.Preferences.CheckBoxPreference‘到'Android.Views.View’的隐式引用转换。
我的PreferenceScreen.xml是什么样的:
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceCategory
android:title="Basic"
android:id="@+id/preferenceCategory">
<CheckBoxPreference
android:id="@+id/preferenceCheckBox"
android:key="usetestdata"
android:title="Testdata ON/OFF"
android:defaultValue="true" />
</PreferenceCategory>
</PreferenceScreen>而不起作用的代码:
var aCheckBox = FindViewById<CheckBoxPreference>(Resource.Id.preferenceCheckBox);
aCheckBox.Enabled = false;也许有人能帮我,告诉我如何从PreferenceScreen访问活动中的控制?
发布于 2012-11-19 13:23:58
下面是使用PreferenceActivity的代码
public class SettingsActivity extends PreferenceActivity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//add the prefernces.xml layout
addPreferencesFromResource(R.xml.preferences);
final CheckBoxPreference cf = (CheckBoxPreference) findPreference("checkbox"));
cf.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
public boolean onPreferenceChange(Preference preference, Object newValue) {
// do something here
return false;
}
});
}xml文件夹中的preferences.xml
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
<CheckBoxPreference android:key="checkbox"
android:title="Title"/>
</PreferenceScreen>https://stackoverflow.com/questions/13454500
复制相似问题