2013-04-25 15 views
0

我想添加一個字符串到下面的警報框的正面按鈕,但它不斷髮送垃圾郵件的錯誤消息。AlertDialog中的setPositiveButton,使用字符串?

AlertDialog.Builder builder = new AlertDialog.Builder(this); 
builder.setMessage(R.string.checkNetwork).setTitle(
     R.string.checkNetworkTitle); 
builder.setIcon(R.drawable.ic_warning); 
builder.setPositiveButton(android.R.string.continue, new warningContinue()); 
AlertDialog dialog = builder.create(); 
dialog.show(); 

任何幫助?它似乎工作的標題和消息,但不是按鈕...

在此先感謝。

編輯:錯誤說:

在 方法setPositiveButton(INT,DialogInterface.OnClickListener)類型AlertDialog.Builder不適用於參數 (類,warningContinue)

所以它似乎期望一個整數,但我想知道是否有任何方式使用字符串本地化的目的?

編輯2:

好吧,到底什麼。問題在於字符串名稱;它不會讓我命名我的字符串繼續出於某種原因。 o_O

+0

你介意更新你的問題與你得到的錯誤? – britzl 2013-04-25 17:43:43

+0

「不適用於按鈕」是什麼意思? – Blackbelt 2013-04-25 17:43:47

回答

1

R.string.warningButton只是您的R.java文件中的int。要獲得相關的字符串中使用以下行:

builder.setPositiveButton(getString(R.string.warningButton), new warningContinue()); 

至於其他提到的,因爲它不會在系統中存在不使用android.R.string.continue。

+0

謝謝你。儘管如此:builder.setPositiveButton(R.string.warningButton,new warningContinue()); – momo 2013-04-25 18:01:13

+0

你是對的,我提供給你的解決方案是更通用的情況:'builder.setButton(DialogInterface.BUTTON_POSITIVE,getString(R.string.warningButton),new warningContinue());' – Mangusto 2013-04-25 18:06:26

+0

有兩種方法來定義按鈕文本。一個需要的CharSequence /字符串和其他需要的資源ID爲String: setPositiveButton(INT文本ID,DialogInterface.OnClickListener監聽器)和 setPositiveButton(CharSequence的文字,DialogInterface.OnClickListener聽衆) – britzl 2013-04-25 18:28:34

2

你不想使用「android.R.string.continue」。 「包名」.R.string.continue是你想要的。這就是你在android中進行本地化的常用方法。該ID根據用戶系統語言自動提供多語言支持。你只需要創建多個「值」目錄。 https://developer.android.com/guide/topics/resources/localization.html爲您提供了關於本地化的更多信息。

此外,你不能使用「繼續」作爲名稱,使用「str_continue」或類似的東西(「返回」或「休息」等相同)。它們保留在java中。欲瞭解更多信息,你可以閱讀鏈接:http://java.about.com/od/javasyntax/a/reservedwords.htm

因爲你不發佈「warningContinue()」的代碼,我想你知道它必須擴展「DialogInterface.OnClickListener()」。你也應該考慮編寫你的類的第一個字符大寫爲約定的原因,爲更多的信息讀取這個答案在計算器:https://stackoverflow.com/a/414029/2238341

+2

正確的,沒有系統的字符串命名android.R.string.continue。然而,還有一堆其他預定義的字符串可以使用:android.R.string.cut,android.R.string.ok,android.R.string.cancel等) – britzl 2013-04-25 18:33:16

相關問題