我有这段代码
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);
错误信息如下:
我在设置标题时几乎相同,并且可以使用。错误:未找到适当的方法以设置消息(setMessage) ProgressDialog.setMessage (CharSequence) 方法不适用 (实际参数 int 无法通过方法调用转换为 CharSequence) AlertDialog.setMessage (CharSequence) 方法不适用 (实际参数 int 无法通过方法调用转换为 CharSequence)
progressBar.setTitle(R.string.ats_title_wait);
如果我把文本放在逗号之间,它可以工作,但是我想知道为什么这种方法不起作用。
progressBar.setMessage("Service unavailable");
谢谢你
.setMessage(context.getResources().getString(R.string.ats_unavailable_service));
的意思是设置对话框的消息内容为R.string.ats_unavailable_service
所指定的字符串资源,而这个资源无法使用。 - Blackbelt