我有这个代码
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);
错误是这样
我设置标题的位置几乎相同并且正在工作
progressBar.setTitle(R.string.ats_title_wait);
如果我在昏迷之间插入文字有效,但我想了解为什么这种方式无效
progressBar.setMessage("Service unavailable");
谢谢你
最佳答案
是的,因为setMessage()
并非旨在将资源字符串获取为int。
您必须从资源int获取String并使用Application Context的setMessage()
方法将其应用于getResource().getString()
。
喜欢,
progressBar.setMessage(context.getResources().getString(R.string.ats_unavailable_service));