本地化进度对话框

时间:2012-01-28 22:48:31

标签: android localization progressdialog

我显示了一个包含异步任务的进度对话框。

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”之后的评论中所示本地化消息。要做到这一点,我需要获得字符串资源;我如何从这里做到最好?

2 个答案:

答案 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);
            }
            });

    }



    }