5

次のように、Mono for Android でダイアログを作成しています。

AlertDialog.Builder builder = new AlertDialog.Builder(Context);
builder.SetTitle(Context.GetString(Resource.String.MyTitle));
builder.SetMessage(Context.GetString(Resource.String.MyQuestion);
//YES, not OK
builder.SetPositiveButton(Android.Resource.String.Yes, new EventHandler<DialogClickEventArgs>((dlgSender, dlgEvt) => { doSomething();});
builder.SetNegativeButton(Context.GetString(Android.Resource.String.No), new EventHandler<DialogClickEventArgs>((dlgSender, dlgEvt) => {    doSomethingElse();}));
builder.SetNeutralButton(Context.GetString(Android.Resource.String.Cancel), 
                                         new EventHandler<DialogClickEventArgs>((dlgSender, dlgEvt) => {}));

Dialog dialog = builder.Create();
dialog.Show();

これにより、「キャンセル、キャンセル、OK」という3 つのボタンで質問が表示されますが、「いいえ、キャンセル、はい」と表示されるはずでした。上記のコードに何か問題がありますか、それとも Mono for Android に何か問題がありますか?

4

1 に答える 1

10

android.R.string.yesおよびandroid.R.string.noAndroid.Resource.String.*Monodroidのように使用される)は単なるリソース名であり、「OK」および「キャンセル」に相当します。独自の文字列リソースを作成する必要があります。

Android strings.xml(Android 4.2)から:

<!-- Preference framework strings. -->
<string name="ok">OK</string>
<!-- Preference framework strings. -->
<string name="cancel">Cancel</string>
<!-- Preference framework strings. -->
<string name="yes">OK</string>
<!-- Preference framework strings. -->
<string name="no">Cancel</string>
于 2013-03-03T03:07:30.457 に答える