agu*_*ina 5 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();
}
});
}
Run Code Online (Sandbox Code Playgroud)
但是如果我这样设置,我在线上会收到错误
progressBar.setMessage(R.string.ats_unavailable_service);
Run Code Online (Sandbox Code Playgroud)
错误就是这个
错误:没有为setMessage(int)方法找到合适的方法ProgressDialog.setMessage(CharSequence)不适用(实际参数int不能通过方法调用转换转换为CharSequence)方法AlertDialog.setMessage(CharSequence)不适用(实际参数int不能通过方法调用转换转换为CharSequence)
我设置标题几乎是相同的,并在工作
progressBar.setTitle(R.string.ats_title_wait);
Run Code Online (Sandbox Code Playgroud)
如果我把文本放在昏迷之间是有效的,但我想明白为什么这种方式不起作用
progressBar.setMessage("Service unavailable");
Run Code Online (Sandbox Code Playgroud)
谢谢
use*_*305 14
是的,因为setMessage()它不是为了将资源字符串设置为int.
您必须从资源int获取String并应用于setMessage()使用getResource().getString()Application Context的方法.
喜欢,
progressBar.setMessage(context.getResources().getString(R.string.ats_unavailable_service));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6328 次 |
| 最近记录: |