2013-03-03 49 views
3

我建立一个对话框中单为Android这样的无正文:错误是/采用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(); 

这带来了我的三个按钮的问题:“取消,取消,确定”而我预计会得到“不,取消,是”。上面的代码有什么问题吗?或者在Android的Mono for Android中出现了什么问题?

回答

8

android.R.string.yesandroid.R.string.no(用作MonoDroid的Android.Resource.String.*)只是资源名称,这等同于“确定”和“取消”。您必须创建自己的字符串资源。

从Android的strings.xml(安卓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> 
+0

感谢您的回答!如果只是一种语言,定义这两个字符串将不会是一个问题,但这意味着我将不得不更新一个strings.xml文件... – Philipp 2013-03-03 16:00:13

+0

@Philipp是的,不幸的是,这是它的方式。我们不能真正依赖Google的字符串文件。 – Eric 2013-03-03 16:21:37

相关问题