我有以下代码:
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。
答案 0 :(得分:2)
使用MainActivity.this
表示您希望来自外部类的this
。您正在创建一个匿名内部类(YqlVplanParser
的子类),因此this
是内部类的实例。
答案 1 :(得分:2)
您可以通过以下方式访问MainActivity的上下文:
Toast toast = Toast.makeText(MainActivity.this, "Nachricht", Toast.LENGTH_LONG);
toast.show();