我显示了一个包含异步任务的进度对话框。
private class RetrieveTask extends AsyncTask<String, Void, String>
{
RetrieveTask t = this;
ProgressDialog d = null;
@Override
protected void onPreExecute()
{
// TODO
//d = ProgressDialog.show(context, "", context.getString(R.string.querying_server), true, true, new DialogInterface.OnCancelListener() {
d = ProgressDialog.show(context, "", "Loading...", true, true, new DialogInterface.OnCancelListener() {
public void onCancel(DialogInterface dialog) {
t.cancel(true);
}
});
// continues....
此阶段context
已设置为根活动。
我想按照“TODO”之后的评论中所示本地化消息。要做到这一点,我需要获得字符串资源;我如何从这里做到最好?
答案 0 :(得分:2)
我错过了getResources()
来电,就是这样。
context.getResources().getString(R.string.my_string_id);
答案 1 :(得分:0)
我只是使用对调用活动上下文的引用。
伪代码示例:
public class MyMainActivity extends Activity {
private void MethodA{
new RetreiveTask().execute();
}
//then in the AsyncTask, you could get a context by using the: *MyMainActivity.this* syntax.
private class RetrieveTask extends AsyncTask<String, Void, String>
{
RetrieveTask t = this;
ProgressDialog d = null;
@Override
protected void onPreExecute()
{
// TODO
//d = ProgressDialog.show(context, "", context.getString(MyMainActivity.this.R.string.querying_server), true, true, new DialogInterface.OnCancelListener() {
d = ProgressDialog.show(context, "", "Loading...", true, true, new DialogInterface.OnCancelListener() {
public void onCancel(DialogInterface dialog) {
t.cancel(true);
}
});
}
}