我尝试在使用role_code
的{{1}}内制作自定义Preference
。我遇到的问题是我似乎无法调用事件。
options.xml中的首选项:
PreferenceActivity
slider_preference.xml:
SeekBar
OptionsActivity.cs
<Preference
android:key="radius"
android:title="Radius"
android:layout="@layout/slider_preference" />
使用断点,我能够确定仅在以编程方式设置seek.Progress时才调用<SeekBar
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:progress="4000"
android:max="9000"
android:id="@+id/seeker"
android:gravity="center"
android:layout_gravity="center"
android:layout_weight="2" />
事件。每当我在UI中更改它时,都不会调用该事件。在我看来,有两个不同的[Activity(Label = "Options", ScreenOrientation = Android.Content.PM.ScreenOrientation.Portrait)]
public class OptionsActivity : PreferenceActivity
{
//...
protected override void OnCreate(Bundle savedInstanceState)
{
var radius = (Preference)FindPreference(Preferences.RADIUS);
View radiusView = radius.GetView(null, null);
SeekBar seek = radiusView.FindViewById<SeekBar>(Resource.Id.seeker);
TextView bottomTitle = radiusView.FindViewById<TextView>(Resource.Id.bottom_text);
seek.ProgressChanged += delegate
{
RunOnUiThread(() =>
{
bottomTitle.Text = (seek.Progress + 1000).ToString() + " feet";
});
};
seek.Progress = 9000;
}
//...
}
包含ProgressChanged
,而我实际接触的那个与代码中的那个不同。
我该如何解决这个问题?