0

我有以下代码:

public class MainActivity extends SherlockFragmentActivity implements View.OnClickListener, FragmentA.SomeListener {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);


        setContentView(R.layout.activity_main);


        String helloWorld = getResources().getString(R.string.hello_world);

        new YqlVplanParser(){ // A AsyncTask
            @Override
            protected void onPostExecute(String jsonString) {
                JsonArray result = JsonArray.readFrom(jsonString);
                result.toString();

                Toast toast = Toast.makeText(/*HERE I NEED THE ACTIVITY*/, "Nachricht", Toast.LENGTH_LONG);
                toast.show();

            }
        }.execute("query");
    }   
}

所以通常我会写thiswhere /*HERE I NEED THE ACTIVITY*/stand,但我现在如何访问活动?这将引用我的 AsyncTask。

4

2 回答 2

2

用于MainActivity.this表示您想要this来自外部类的。您正在创建一个匿名内部类(的子类YqlVplanParser),this内部类的实例也是如此。

于 2013-07-14T11:47:39.717 回答
2

您可以通过这种方式访问​​ MainActivity 的上下文:

Toast toast = Toast.makeText(MainActivity.this, "Nachricht", Toast.LENGTH_LONG);
 toast.show();
于 2013-07-14T11:47:50.840 回答