来自字符串资源的 Android ProgressDialog setMessage

标签 android android-resources

我有这个代码

    public void serviceUnavailable() {
    runOnUiThread(new Runnable() {
        @Override
        public void run() {

            progressBar = new ProgressDialog(context);
            progressBar.setOnKeyListener(new DialogInterface.OnKeyListener() {
                @Override
                public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
                    if (keyCode == KeyEvent.KEYCODE_BACK) {
                        atsSocketManager.disconnect();
                        progressBar.dismiss();
                    }
                    return false;
                }
            });
            progressBar.setCancelable(false);
            progressBar.setTitle(R.string.ats_title_wait);
            progressBar.setMessage(R.string.ats_unavailable_service);
            progressBar.setProgressStyle(ProgressDialog.STYLE_SPINNER);
            progressBar.show();
        }
    });
}

但是如果我这样设置,我在设置消息的地方会出现错误

progressBar.setMessage(R.string.ats_unavailable_service);

错误是这样的

error: no suitable method found for setMessage(int) method ProgressDialog.setMessage(CharSequence) is not applicable (actual argument int cannot be converted to CharSequence by method invocation conversion) method AlertDialog.setMessage(CharSequence) is not applicable (actual argument int cannot be converted to CharSequence by method invocation conversion)

我设置标题的地方几乎相同并且有效

progressBar.setTitle(R.string.ats_title_wait);

如果我将文本放在逗号之间是可行的,但我想了解为什么这种方式不起作用

progressBar.setMessage("Service unavailable");

谢谢

最佳答案

是的,因为 setMessage() 不是为了将资源字符串作为 int 而设计的。

您必须从资源 int 中获取字符串,并使用应用程序上下文的 getResource().getString() 方法将其应用于 setMessage()

喜欢,

progressBar.setMessage(context.getResources().getString(R.string.ats_unavailable_service));

关于来自字符串资源的 Android ProgressDialog setMessage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28836280/

相关文章:

java - 匿名 Handler 或 Runnable 会造成内存泄漏吗?

android - Android 中的事件处理(setOnClickListener)

javascript - HTML 元素无法在 Samsung Tab Active2 Tablet 上的 chrome 中正确打开

android - 我应该导入哪个 fragment 库?

android - 以编程方式将 TextView 颜色设置为 <selector>

android - 尝试通过制作应用程序找到合适的起点和方向

c# - 找不到 Xamarin Android 资源文件

java - 如何将 FileInputStream 获取到 Assets 文件夹中的文件

android - 不同 Android 版本的不同 appWidgetProvider

java - 如何从 Android 中 XML 中定义的字符串数组中获取对单个元素的引用