2013-03-03 56 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

相關問題