如何在另一个对象中访问Android Activity?

时间:2013-07-14 11:45:18

标签: java android

我有以下代码:

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");
    }   
}

因此,我会写this /*HERE I NEED THE ACTIVITY*/所在的地方,但我现在如何才能访问该活动?这将引用我的AsyncTask。

2 个答案:

答案 0 :(得分:2)

使用MainActivity.this表示您希望来自外部类的this。您正在创建一个匿名内部类(YqlVplanParser的子类),因此this是内部类的实例。

答案 1 :(得分:2)

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

Toast toast = Toast.makeText(MainActivity.this, "Nachricht", Toast.LENGTH_LONG);
 toast.show();